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

Вниз

Создание ComboBox а для компонента   Найти похожие ветки 

 
AZ ©   (2004-11-02 17:18) [0]

Прошу прощения за детский вопрос, просто с этим никогда не сталкивался.

...
 cbSelector:=TComboBox.Create(Self);
 cbSelector.Parent:=Self;
// Тут координаты cbSelector"a
 cbSelector.Items.Add(S); //В этом месте возникает сбой
-------------------^^^


Сообщение - "компонент не имеет родителя (parent)".
Insert дает тот же результат.
Закомментировав строку, получаю комбобокс без Items"ов, что естественно.
Но это также и показывает, что предыдущий код работает.


 
MBo ©   (2004-11-02 17:24) [1]

Перенеси этот код в перекрытый метод CreateWnd


 
AZ ©   (2004-11-02 17:28) [2]

"Он любил выражаться коротко и непонятно" (с) не мое.
Можно в чуть более развернутом виде?


 
MBo ©   (2004-11-02 17:39) [3]

В конструкторе компонента еще не создано окно, а многие операции с Combobox требуют наличия действительного дескриптора окна.
Нужно в объявлении класса:

procedure CreateWnd; override;

а в реализации

procedure TSuperComponent.CreateWnd;
begin
 inherited CreateWnd;
 cbSelector:=TComboBox.Create(Self);//эти строки можно в принципе
 cbSelector.Parent:=Self;//и в конструкторе оставить
 cbSelector.Items.Add(S);
end;


 
Юрий Зотов ©   (2004-11-02 18:37) [4]

Только я бы еще добавил проверку cbSelector на nil. Потому что иначе этот код будет отрабатывать при каждом RecreateWnd.


 
AZ ©   (2004-11-02 20:10) [5]

О!
Сразу два ответа!
Большое спасибо*2^10!



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

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

Наверх




Память: 0.48 MB
Время: 0.046 c
3-1123092157
Максим
2005-08-03 22:02
2005.09.18
Транзакции в Ado


1-1125132162
Lamer@fools.ua
2005-08-27 12:42
2005.09.18
Ещё один баг в D6


14-1125094288
ronyn
2005-08-27 02:11
2005.09.18
Pack Man


14-1124633367
vrem
2005-08-21 18:09
2005.09.18
Что почитать?


2-1123756991
Гость22
2005-08-11 14:43
2005.09.18
Как узнать, какая клавиша нажата в DBNavigator?