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

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

Ошибка при динамическом создании TImageList [D7, WinXP]


alex_shkut ©   (2005-03-02 21:30:00) 

 FImageList:=TCustomImageList.Create(AOwner);
//=== Собственно, ToolBar ====
 FBtnBar:=TToolBar.Create(Self);
 FBtnBar.Parent:=FBtnPanel;
 FBtnBar.ShowCaptions:=true;
 FBtnBar.Images:=FImageList;


Вот здесь и вылазит ошибка:

Project raised exception class EInvalidOperation with message 'Control '' has no parent window'.

Кто знает, с чем это связано?


alex_shkut   (2005-03-03 11:33:00) [1]

Спасибо огромное.
Перенес FBtnBar.Images:=FImageList в процедуру CreateWnd и все стало нормально создаваться.


Юрий Зотов   (2005-03-03 00:33:00) [2]

Многие методы оконных контролов реализованы посылкой сообщений окну. В конструкторе же создается сам объект, а его окно еще не создано - поэтому вызов таких методов в конструкторе, вообще говоря, ошибочен. И если контролы user32 обходят эту ситуацию автоматически, за счет вызова HandleNeeded, то контролы comctl32 (а к ним и относятся тулбары) такого не любят. Похоже, отсюда и ошибка.

Попробуйте перенести код из конструктора в CreateWnd, только обязательно после вызова inherited.


alex_shkut   (2005-03-02 22:50:00) [3]

Проще задача состоит в том, чтобы запихнуть Icon в Bitmap.
Я пытаюсь использовать ImageList как естественное свойство ToolBar но в конструкторе Create потомка TPanel, в которую я встраиваю ToolBar возникает ошибка.
Реализовано в отдельном модуле.
TPanel -> ToolBar+ImageList -> ToolButton+ImageIndex:Icon


Юрий Зотов   (2005-03-02 22:09:00) [4]

Уточните - где написан этот код?
Похоже, что слишком рано, когда еще не создано окно.


alex_shkut   (2005-03-02 21:48:00) [5]

Без этой строки все работает нормально, но нужны картинки.


Наверх

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