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

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

Error : Control has no parent window [D6, Win2k]


Duce ©   (2002-01-25 14:52:00) 

Привет!
Может кто. просветленный разумом, снисходительно пояснит
причины означенной ошибки?
Котекст ошибки такой:
Имеем свой компонент от TPanel. В его конструкторе
диеамически создаем и размещаем еще несколько панелек, в коих
есть TEdit-ы. В завершении конструктора пытаюсь поставит
на TEdit первой встроенной панельки фокус. Компонент компилится,
но при запуске формы, куда вставлен компонент лезет эта ошиба...
При попытке создавать без дизайнера, динамически - то же самое.
Пачему?????
Заранее благодарный...


Набережных С.   (2002-01-25 20:44:00) [1]

Это неправильно в корне, т.к. противоречит самому понятию "фокуса". Если коротко, в момент вызова SetFocus в конце цепочки парентов компонента должна быть форма, есть и другие ограничения. Посмотри исходники SetFocus. В данном случае нужно вызывать SetFocus в обработчике события OnEnter предка компонента.


Дремучий   (2002-01-25 17:01:00) [2]

2 Duce
извини невнимательно прочитал,
нужно
эдиты первой встроенной панели
Edit1.Parent := VstrPanel1;
Edit2.Parent := VstrPanel1;

эдиты второй встроенной панели
Edit3.Parent := VstrPanel2;
Edit4.Parent := VstrPanel2;




Дремучий   (2002-01-25 16:19:00) [3]

2 Duce
>>Может кто просветленныйразумом...
Дремучий ;)


troits   (2002-01-25 16:18:00) [4]

Попробуй использовать для твоего наследника TPanel не Create, когда parent-окно еще не создано, а CreateHandle.


Дремучий   (2002-01-25 16:09:00) [5]

в конструкторе пишешь до SetFocus
Edit1.Parent := self;
и дело в шляпе :)


Наверх

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