Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизОшибка при динамическом создании 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c