Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Ошибка при динамическом создании TImageList   Найти похожие ветки 

 
alex_shkut ©   (2005-03-02 21:30) [0]

 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-02 21:48) [1]

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


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

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


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

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


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

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

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


 
alex_shkut ©   (2005-03-03 11:33) [5]

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



Страницы: 1 вся ветка

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
6-1106216491
New User
2005-01-20 13:21
2005.03.20
Как раскодиравть коки


3-1108544034
AlexTregubov
2005-02-16 11:53
2005.03.20
Как с помощью SQL-запроса узнать сколько человеку лет?


1-1109844534
leonidus
2005-03-03 13:08
2005.03.20
Toolbar как в Word`е XP


1-1109338130
Asail
2005-02-25 16:28
2005.03.20
Зависание Delphi 7 при включенном Hyper-Threading


6-1106037574
y0zh
2005-01-18 11:39
2005.03.20
Ethernet (отослать что-угодно, а потом получить ответ)