Главная страница
    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.068 c
8-1094010063
tsalBSM
2004-09-01 07:41
2004.12.05
AIFF файлы


1-1101112539
KADAN
2004-11-22 11:35
2004.12.05
Текстовый редактор


1-1101282818
Yozch1
2004-11-24 10:53
2004.12.05
Глюки при отображении кнопок при XPmanifeste


3-1099647796
alsov1
2004-11-05 12:43
2004.12.05
Помогите запихнуть иерархию в TTreeView


8-1094490378
Klopan
2004-09-06 21:06
2004.12.05
mp3 player в DOS





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