Главная страница
    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.46 MB
Время: 0.032 c
1-1101033146
Morj
2004-11-21 13:32
2004.12.05
Глюк Win2k


14-1100781713
NewDelpher
2004-11-18 15:41
2004.12.05
Кто исполняет песн&#110


1-1101133232
ЛёхА
2004-11-22 17:20
2004.12.05
Скриптовой Язык


1-1100429494
Артем Владимирович
2004-11-14 13:51
2004.12.05
Как сделать приложение мультиплатформенным?


1-1100799817
Shark
2004-11-18 20:43
2004.12.05
Интерпритация выражений





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский