![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не находит контрол на форме
Mikle © (2009-03-12 18:18:00)Здравствуйте.
Пишу программку, в которой объекты при активации должны динамически генерировать под себя интерфейс на панельке...
Генерируют, заполняют. При деактивации должны удалять созданные ими контролы. Удалются все кроме надписей (TLabel).
В сокрашённом виде это выглядит так:
control:=TLabel.Create(self);
control.Parent:=Form1;
control.Name:='mycontrol';
control:=Form1.FindChildControl('mycontrol'); {возвращает NIL}
control.Destroy;
Оно же работает с TEdit, TButton, TMemo и т.п. TLabel ведь тоже наследник класса TControl, так почему же тогда не находит???
Да, ещё хотел спросить.. сначала вызывал не Destroy, а Free - ошибка не появлялась, а надпись оставалась.. т.е. метод Free - это класс функция? или она эквивалентна вызову процедуры FREE(myObject)?
Заранее спасибо за ответ)
Palladin (2009-03-12 19:03:00) [1]от того что он наслежник TGraphicControl наследником от TComponent он быть не перестает
Form1.FindComponent('mycontrol')
Mikle (2009-03-12 19:01:00) [2]хм.. вижу :(
но как же тогда обращаться к лэйблу? можно, конечно, хранить указатель на него, но так не интересно)) судя по тому что я увидел (если конечно туда смотрел) можно заюзать TStaticText вместо лэйбла (кстати я его раньше нигде не встречал..). но всё же) мне уже просто интересно, как же тогда динамически обращаться к наследникам TGraphicControl ???
Leonid Troyanovsky (2009-03-12 18:56:00) [3]
> Mikle (12.03.09 18:18)
> тоже наследник класса TControl, так почему же тогда не находит?
Не там ищем, RTFM: TWinControl.Controls
--
Regards, LVT.
Медвежонок Пятачок (2009-03-12 18:25:00) [4]А после заглядывания внутрь FindChildControl посмотри на иерархию предков лэйбла.
Медвежонок Пятачок (2009-03-12 18:24:00) [5]Загляни внутрь и поймешь почему