Текущий архив: 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.46 MB
Время: 0.039 c