Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.47 MB
Время: 0.032 c
6-1095851631
MSergey
2004-09-22 15:13
2004.12.05
Получение данных из Интернета


14-1100803396
sem
2004-11-18 21:43
2004.12.05
Как добавить в файл .bpg больше 99 проектов


3-1099568858
av_mark
2004-11-04 14:47
2004.12.05
Отрисовка DBGrid


9-1088730453
Xerx
2004-07-02 05:07
2004.12.05
Источники света


1-1100767996
doma
2004-11-18 11:53
2004.12.05
ToolWindow из Dllины





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский