![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте!
у меня 2 вопроса. 1) хочу динамически создать вкладки tabsheet (pagecontrol). чтоб при нажатии кнопки открывалось окно, где можно было бы прописать название для этой вкладки. и чтоб бесконечно можно было бы добавлять. 2) как можно сохранить вкладки, чтоб при следующем запуске приложения все динамчески созданные остались? Заранее спасибо! |
#2
|
|||
|
|||
![]() по поводу названия:
в форме с PageControl в разделе public пишем переменную Код:
NameTab:string; Код:
form1.NameTab:=Edit1.text; close; Динамическое создание вкладок: Код:
var IDTab:integer; procedure TForm1.Button1Click(Sender: TObject); var tn:TTabSheet; begin NameTab:=''; form2.showmodal; if length(trim(NameTab))>0 then begin tn:=TTabSheet.Create(PageControl1); tn.Name:='MyTab'+inttostr(IDTab); tn.Caption:=NameTab; IDTab:=IDTab+1; tn.PageControl:=PageControl1; end; end; 2.Сохранить проще всего в INI. |
#3
|
||||
|
||||
![]() Способ немного попроще:
Код:
var num: integer =1; procedure TForm1.Button1Click(Sender: TObject); begin with TTabSheet.Create(Self) do begin PageControl:=PageControl1; Caption:=InputBox('Моя программа', 'Имя вкладки', 'Новая вкладка '+IntToStr(num)); Name:='TabSheet'+inttostr(num+9000); end; num:=num+1; end; |
#4
|
|||
|
|||
![]() да! допустим создал 3 различных вкладок (динамически). закрыл программу. и чтоб при следующем запуске они оставались
|
#5
|
||||
|
||||
![]() Сохранять можно так
Код:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); var Ini: TIniFile; i: SmallInt; begin Ini := TIniFile.Create('c:\MyIni.ini'); Ini.WriteInteger('Pages','Count',PageControl1.PageCount - 1); for i := 0 to PageControl1.PageCount - 1 do Ini.WriteString('Pages','Page' + IntToStr(i),PageControl1.Pages[i].Caption); end; Код:
procedure TForm1.FormCreate(Sender: TObject); var TS: TTabSheet; Ini: TIniFile; i: SmallInt; cnt: Byte; begin Ini := TIniFile.Create('c:\MyIni.ini'); cnt := Ini.ReadInteger('Pages','Count',0); for i := 0 to cnt do begin TS := TTabSheet.Create(Self); TS.PageControl := PageControl1; TS.Caption := Ini.ReadString('Pages','Page' + IntToStr(i),''); end; end; Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#6
|
|||
|
|||
![]() спасибо большое!!!
|