![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
|||
|
|||
|
спасибо большое!!!
|