Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.23;
Скачать: CL | DM;

Вниз

Создание TabSheet динамически   Найти похожие ветки 

 
WestNik   (2007-11-30 09:35) [0]

Здравствуйте! Помогите пожалуйста!
Имеется PageControl с несколькими страницами (TabSheet). Страницы содержат StringGrid, несколько кнопок и лейблев. Нужно, чтобы в процессе выполнения программы, по нажатию кнопки создавалась/удалялась новая страница. Страницу-то создать динамически могу, а вот как в нее вставить содержимое не знаю.
Заранее спасибо!


 
Dennis I. Komarov ©   (2007-11-30 10:07) [1]

Может тебе достаточно юзать св-во visible?
Если нет - выкладывай чего и как создаешь...
Parent нужен соответствующий


 
Юрий Зотов ©   (2007-11-30 10:09) [2]

> WestNik   (30.11.07 09:35)  

> как в нее вставить содержимое не знаю.

Точно так же - Create, SetParent, SetBounds и пр. Но может быть, будет проще создать страницы в design-time, а потом только показывать нужную?


 
WestNik   (2007-11-30 11:19) [3]

>Dennis I. Komarov ©   (30.11.07 10:07) [1]
>Может тебе достаточно юзать св-во visible?

Думал над этим, но 40-50 страниц вручную как-то не охота рисовать.

Код следующий:
procedure TForm1.TabSh( Edit: TEdit);
var
 PageControl: TPageControl;
 TabSheet: TTabSheet;
 StringGrid: TStringGrid;
begin
 TabSheet := TTabSheet.Create(Self);
 TabSheet.Caption := Edit.Text;
 TabSheet.PageControl := PageControl2;
  StringGrid := TStringGrid.Create(Self);
  StringGrid.Visible := true;
end;
Последние 2 строки не работают.
С Parent не работал


 
ЮЮ ©   (2007-11-30 11:22) [4]

StringGrid-у надо ещё Parent установить, чтобы виден стал.


 
Goric ©   (2007-11-30 11:23) [5]

begin
 TabSheet := TTabSheet.Create(Self);
 TabSheet.Caption := Edit.Text;
 TabSheet.PageControl := PageControl2;
 StringGrid := TStringGrid.Create(Self);
 StringGrid.Parent := TabSheet;
end;


 
ЮЮ ©   (2007-11-30 11:28) [6]

> StringGrid := TStringGrid.Create(Self);

тогда уж TStringGrid.Create(TabSheet); вдруг и удалять придется динамически.


 
WestNik   (2007-11-30 11:29) [7]

Спасибо всем!!!! Работает! :)


 
Dennis I. Komarov ©   (2007-11-30 11:30) [8]

> Последние 2 строки не работают.
> С Parent не работал

Что значит не работают.

> StringGrid := TStringGrid.Create(Self);

Почему у тебя StringGrid сам по себе - свой собственный

> С Parent не работал

Ну тогда и нечего в disign-time не создавал :)


 
ЮЮ ©   (2007-11-30 11:32) [9]

> > StringGrid := TStringGrid.Create(Self);
>
> Почему у тебя StringGrid сам по себе - свой собственный


Он не "свой собственный", а "форменный", ибо создается в методе формы procedure TForm1.TabSh( Edit: TEdit);


 
Dennis I. Komarov ©   (2007-11-30 12:38) [10]

> [9] ЮЮ ©   (30.11.07 11:32)

Завтра он перетащит код еще куда-нить, хотя тут согласен, я не посмотрел на процедуру, а только на код. Но все равно не верно. Будет убиваться деструктором формы, что не есть гуд. Захочет убить свой табщит, а стринггрид останется.



Страницы: 1 вся ветка

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
2-1196081931
FOX
2007-11-26 15:58
2007.12.23
трехмерные изображения


2-1196035767
Dmitry_V
2007-11-26 03:09
2007.12.23
Работа с базами данных в Delphi 2007


8-1171205709
Daiger
2007-02-11 17:55
2007.12.23
DelphiX проблема


15-1196159536
All More system
2007-11-27 13:32
2007.12.23
Разработка динамического сайта


2-1196057501
simon
2007-11-26 09:11
2007.12.23
Unicode в базе данных