Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TPageControl [Win95/98, WinME, Win2k, WinXP]


Страницы:   1 2

kblc ©   (2005-09-12 23:08:00) 

Уважаемые мастера, подскажите пожалуйста, как правильно в TTabSheet вставить "форму", так что бы не только TLabel отрисовывались, но и другие контролы?
Я делаю так: TabSheet.InsertControl(Form2);, но всё что отображается - это TLabel; А при помощи Dock() и ManualDock() вообще ничего не отображается.

И вот так не работает:

   Sheet:=TTabSheet.Create(pc_Top);
   Sheet.Visible:=TRUE;
   Sheet.Caption:=TForm(Control).Caption;
   Sheet.PageControl:=pc_Top;

   Control.Parent:=Sheet;
   Control.Visible:=TRUE;
   Control.Left:=0;
   Control.Top:=0;
, где pc_Top = TPageControl, а Control = TWinControl
Подскажите пожалуйста как это сделать?


msguns   (2005-09-13 11:30:00) [21]

"Накидать" в рантайме можно что угодно и куда угодно. Но это весьма геморно, т.к. созданным динамически контролам надо будет определять кучу свойств и событий, чтобы смотрелось все красиво и ровно. Фрэймы и служат для того, чтобы все красивости делать визуально в дизайне, а в ране просто создавать новый экземляр контейнера-фрэйма (блока красиво смонтированных контролов) и совать его куда следует (на фоорму, шит, панель или куда еще надо), используя св-во Parent.
Подобным образом прикольно штамповать однотипные блоки контролов в случаях, когда число этих ьлоков произвольно (как, например, в случае с тем же пэйджконтролом, содержащим энное количество однотипных шитов).


kblc   (2005-09-13 11:25:00) [22]

Сейчас закинул все контролы на TFrame. Не помогло. Я бы сказал так: ничего не видно!


kblc   (2005-09-13 11:07:00) [23]

begin...end ©   (13.09.05 09:41) [13]
> А у неё Visible = True? Если нет, то Form.Show надо добавить.
 В коде выше я делал так Control.Visible:=TRUE; Но и Form.Show не помогло.

msguns ©   (13.09.05 09:56) [14]
> Используй фрэйм, на который положи все контролы, а сам фрэйм клади то ли на форму, то ли на табшит

 Это поможет? Переделывать всё с формы на Frame - не спортивно. Можно ли тогда в рантайме на фрейм накидать все контролы с формы (и теме же обработчиками) ???


msguns   (2005-09-13 09:56:00) [24]

>kblc ©   (13.09.05 09:40) [12]
>И ещё, меня не интересует впринципе вся форма, меня интересуют как вставить туда все контролы с формы!

Используй фрэйм, на который положи все контролы, а сам фрэйм клади то ли на форму, то ли на табшит


begin...end   (2005-09-13 09:41:00) [25]

> kblc ©   (13.09.05 09:40) [12]
> Форма всё так же не видна(!)

А у неё Visible = True? Если нет, то Form.Show надо добавить.


kblc   (2005-09-13 09:40:00) [26]

Form.Parent := PageControl.Pages[PageControl.PageCount-1]

не помогло. Форма всё так же не видна(!)

И ещё, меня не интересует впринципе вся форма, меня интересуют как вставить туда все контролы с формы!


begin...end   (2005-09-13 09:37:00) [27]

> msguns ©   (13.09.05 09:34) [10]

См. [9]. А Owner'а-то зачем трогать?


msguns   (2005-09-13 09:34:00) [28]

>begin...end ©   (13.09.05 09:23) [7]
>Удастся.

Каким образом, поясни, если не в лом. Имеется в виду не отрисовка панели в виде формы, а именно форма, "засунутая" в табшит (у которой owner и parent является табшит и, кроме того, форма "таскается" со всем пайджконтролом при перетаскивании основной формы, пропадает при переключении на другой шит и т.д.)


begin...end   (2005-09-13 09:33:00) [29]

Form.Parent := PageControl.Pages[...]


kblc   (2005-09-13 09:28:00) [30]

Если удастся, то КАК???


begin...end   (2005-09-13 09:23:00) [31]

> msguns ©   (13.09.05 09:16) [6]

Удастся.


msguns   (2005-09-13 09:16:00) [32]

>Наиль ©   (13.09.05 08:53) [3]
>Если тебе удастся проделать этот фокус

Не удастся


Наиль   (2005-09-13 09:11:00) [33]

Кроме Sheet.Caption:=TForm(Control).Caption;всё выглядит правильно (Control должен быть TForm, а не TWinControl).

Но подойдём к вопросу с другого конца.
Form2 известно в DisignTime. Что мешает поместить его содержимое в PageControl в процессе разработки?


kblc   (2005-09-13 08:56:00) [34]

Я же говорю, у меня и это то не получается...
 Почему? Что я делаю не так?


Наиль   (2005-09-13 08:53:00) [35]

Если тебе удастся проделать этот фокус, то на ТабЧит ты увидишь всю форму вместе с крестиком в углу. Лучше помести на форму панель, а всё остальное на панель. Потом можешь переместить панель на ТабЧит.


kblc   (2005-09-13 08:48:00) [36]

Удалено модератором


kblc   (2005-09-12 23:24:00) [37]

Удалено модератором


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо