![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TPageControl [Win95/98, WinME, Win2k, WinXP]
kblc © (2005-09-12 23:08:00)Уважаемые мастера, подскажите пожалуйста, как правильно в TTabSheet вставить "форму", так что бы не только TLabel отрисовывались, но и другие контролы?
Я делаю так:TabSheet.InsertControl(Form2);, но всё что отображается - это TLabel; А при помощи Dock() и ManualDock() вообще ничего не отображается.
И вот так не работает:
, где pc_Top = TPageControl, а Control = TWinControl
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;
Подскажите пожалуйста как это сделать?
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]Удалено модератором