Форум "Delphi" (архив)
Паскаль, Делфи
|
он содержит или наследник панели? Если наследник, то будет все автоматом, если нет, то надо Parent-ам сонтролов, которые ты ложишь на панель, делать сонтрол.Parent:= Panel кажись |
|
#2
Чернышевский
16.09.03 17:22:25
>он содержит или наследник панели? Внимательно читаем второе предложение моего поста :) >надо Parent-ам сонтролов, которые ты ложишь на >панель, делать сонтрол.Parent:= Panel Это я понимаю. Вопрос КАК? |
|
выход - бросать компоненты на панель не в дизайне, а ручками код прописать. А сонтрол.Parent:= Panelписать в конструкторе своего потомка. |
|
игрался тут, нифига не выйдет, кажись. надо наследоватся от панели. Будет код, мож чего яснее станет |
|
#5
Чернышевский
17.09.03 07:57:51
>Deep © 16.09.03 19:05 Не устраивает. Это ж компонент. В требованиях написано, что должно быть редактирование в design-time :( >Паша © 16.09.03 19:15 Не надо наследоваться от панели - еще геморойнее. Я думаю, что надо написать обработчик сообщения на изменение списка дочерних контролов CM_CONTROLCHANGE. Но как? Или перекрыть методы TComponent, сохраняющие/читающие ресурсы формы. |
constructor TMyCustomControl.Create(AOwner: TComponent);
|
|
> Чернышевский 17.09.03 8:57 > Не надо наследоваться от панели надо Федя, надо(с). Я наследовался от панели, и все прекрасно работает. Какого тебе надо от TCustomControl? Это что, принципиально? |
|
по всему, надо перекрывать procedure TComponent.Loaded, а каким макаром, то мне неведомо, никогда не пробовал. |
|
#9
Чернышевский
17.09.03 11:07:07
>Deep © 17.09.03 10:33 Это к чему? >Паша © 17.09.03 10:39 Паша, не надо. Я же не сказал, что пишу свою панель. Я сказал, что контрол "содержит" панель. Еще он много чего содержит. И если ставить это все на панель (наследоваться от панели), то получается сплошной офедрон. Я тоже так пробывал. Сначала. >Паша © 17.09.03 10:57 Перекрывать надо WriteState/ReadState. Только это не тот путь. |
|
код бы посмотреть |
|
#11
Чернышевский
17.09.03 11:38:26
Что ты хочешь увидеть? |
|
в общем, понятно. если ты панель создаешь от self, то в дизайнере у тебя все ОК, но ни хера не сохраняется. В случае, если ты создашь панель от Owner , то все будет нормально. Этого тебе достаточно? шось таке: constructor lala.Create(AOwner: TComponent); begin inherited Create(AOwner); if csDesigning in componentstate then begin panel:= TPanel.Create(AOwner); panel.Align:= alClient; panel.Visible:= true; self.InsertControl(panel); end; end; |
|
> Паша © 17.09.03 12:51 А дизайнере - мучайся! > Что ты хочешь увидеть? Да код твоего зверя. Что там за монстр такой хитрый, что его от панели сделать невозможно? |
|
#14
Чернышевский
17.09.03 12:47:48
Я так и делаю. Толку никакого. |
|
#15 Marser © 17.09.03 12:50:34
А не от TCustomScrollingControl (или как там его) ли нам наследоваться? |
|
вот я только слышу, что ты там чего-то делаешь, а видеть этого - не вижу. зы. А у меня в тестике толк есть - сохраняет в дфм и запускается - все видно. Только в дизайнере у(собачка)бищьно работает. |
|
> Чернышевский 17.09.2003 12:07:00 > > >Deep © 17.09.03 10:33 > Это к чему? это указывает что компонент может "принимать на себя"(быть parent) другие компоненты. |
|
#18
Чернышевский
17.09.03 13:15:54
>Deep © 17.09.03 13:58 Да пробывал я. Не помогает. |
|
#19
Чернышевский
17.09.03 13:27:15
>Паша © 17.09.03 13:51 Паша, я очень рад, что в твоем текстике есть толк. Значит ты толковый парень. Но я-то - бестолковый! И толка в моем текстике нету. От панели сделать возможно все. На то она и панель. Там кода - целый модуль :) Вот тебе, например, конструктор: Вот тебе, как сказал уважаемый Deep "принимать на себя": |
|
#20
Чернышевский
17.09.03 13:29:23
Может дело в нотификации? |
|
> Может дело в нотификации? нет, не похоже зы. из твоего примера не видно, почему нельзя сделать наследника от панели |
|
#22
Чернышевский
21.09.03 14:30:28
Дело в том, что контролы, поставленные на мой компонент в дизайне не имеют Owner'а (=nil). Как бороться не знаю. Буду переписывать от панели. На Пашиной улице праздник :) |
Тема находится в архиве
Написать ответ |
|
