![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание ComboBox'а для компонента [D6, WinXP]
AZ © (2004-11-02 17:18:00)Прошу прощения за детский вопрос, просто с этим никогда не сталкивался.
...
cbSelector:=TComboBox.Create(Self);
cbSelector.Parent:=Self;
// Тут координаты cbSelector'a
cbSelector.Items.Add(S); //В этом месте возникает сбой
-------------------^^^
Сообщение - "компонент не имеет родителя (parent)".
Insert дает тот же результат.
Закомментировав строку, получаю комбобокс без Items'ов, что естественно.
Но это также и показывает, что предыдущий код работает.
AZ (2004-11-02 20:10:00) [1]О!
Сразу два ответа!
Большое спасибо*2^10!
Юрий Зотов (2004-11-02 18:37:00) [2]Только я бы еще добавил проверку cbSelector на nil. Потому что иначе этот код будет отрабатывать при каждом RecreateWnd.
MBo (2004-11-02 17:39:00) [3]В конструкторе компонента еще не создано окно, а многие операции с Combobox требуют наличия действительного дескриптора окна.
Нужно в объявлении класса:
procedure CreateWnd; override;
а в реализации
procedure TSuperComponent.CreateWnd;
begin
inherited CreateWnd;
cbSelector:=TComboBox.Create(Self);//эти строки можно в принципе
cbSelector.Parent:=Self;//и в конструкторе оставить
cbSelector.Items.Add(S);
end;
AZ (2004-11-02 17:28:00) [4]"Он любил выражаться коротко и непонятно" (с) не мое.
Можно в чуть более развернутом виде?
MBo (2004-11-02 17:24:00) [5]Перенеси этот код в перекрытый метод CreateWnd