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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
4-1098443115
Rusty
2004-10-22 15:05
2004.12.05
Как отловить потерю фокуса компонентом?


1-1101033146
Morj
2004-11-21 13:32
2004.12.05
Глюк Win2k


1-1101207056
markers
2004-11-23 13:50
2004.12.05
Алтернативный прогрессбар, с градиентом...


6-1095988913
xoms
2004-09-24 05:21
2004.12.05
Winsock


1-1100795595
dolphin
2004-11-18 19:33
2004.12.05
Файловые переменные