Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизPageControl на Form1 + Form2 на TabSheet... Найти похожие ветки
← →
Apophis © (2004-11-17 18:45) [0]Господа!
Ситуация такая. Есть Форма1, на ней PageControl. Есть форма2. Изначально немного неправильно продумал логику работы, так вот, можно ли теперь Форму2 перенести со всеми компонентами и их событиями на страницу PageControl-а Формы1 ??? Или как лучше такое сделать?
Спасибо!
← →
Гаврила © (2004-11-17 19:15) [1]Можно
создать форму, присвоить парентом TabSheet, выставить размеры
← →
Shaman_Naydak (2004-11-17 19:31) [2]или поправь для формы2, чтобы она наследовалась от TFrame, а не от TForm.. И далее вставишь как фрейм.. только делай на копии сперва, если не пробовал так баловаться
← →
Defunct © (2004-11-17 19:35) [3]> Или как лучше такое сделать?
Создать фрейм.
Перенести все с формы2 в фрейм. Фрейм вставить в TabSheet
← →
wnew © (2004-11-17 20:02) [4]
> Перенести все с формы2 в фрейм. Фрейм вставить в
> TabSheet
А перенести один к одному проще всего, удерживая нажатой Shift кликнуть мышью по каждому компоненту, далее Ctrl+C, а потом сделать активным создаваемый фрейм или прямо TabSheet и - Ctrl+V.
← →
Apophis © (2004-11-17 21:53) [5]wnew
Но только в этом случае события элементов не переносятся. Придется заново переписывать (а вот именно это и влом:) )
← →
Defunct © (2004-11-17 22:03) [6]Apophis © (17.11.04 21:53) [5]
переносятся. просто TForm1. замените на TFrame1.
← →
Apophis © (2004-11-17 22:15) [7]ОК, попробую. Спасибо!
← →
Ihor Osov'yak © (2004-11-18 00:30) [8]Примерно так:
var
idxNewTab: integer;
...
procedure InsertForm2(aParentTab: TTabSheet);
var
form: TForm2;
begin
form := TForm2.Create(nil);
with form do
begin
BorderStyle := bsNone; {зачем нам капшен здесь :-)}
Parent := aParentTab; {собственно - ключевой момент}
Align := alClient; {это очевидно}
Visible := true;
end;
end;
procedure AddWBMsgRoutersTab;
var
ts: TTabSheet;
begin
// создаем закладку в рантайме
inc(idxNewTab);
ts := TTabSheet.Create(self);
with ts do
begin
Name := "ts" + IntToStr(idxNewTab); {имя либо вообще не присваеваем, либо оно должно біть уникально в пределах формы, хостещей соотв. пейдконтрол }
Align := alClient;
Caption := "tab #" + IntToStr(idxNewTab);
PageControl := PageControlMain; // PageControlMain - пейджонтрол
Visible := true;
end;
PageControlMain.ActivePage := ts;
InsertForm2(ts);
...
зы. Написано по памяти, возможны мелкие ошибки синтаксиса, не искажающие сути..
зы2. Примерно такую технику использую довольно часто, иногда есть преимущество по сравнению с использованием фреймов.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.068 c