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

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

Ошибка при создании ComboBox. [D7, WinXP]


Rolf ©   (2005-10-11 13:55:00) 

При создании наследника TComboBox появляется ошибка: Project raised exception class EInvalidOperation with message "Control "" has now parent window".

type
 TCmbBoxNew = class(TComboBox)
 public
   constructor Create(AOwner: TComponent); override;
 end;

constructor TCmbBoxNew.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);

 with Items do
 begin
  Add('a');     // <- error
  Add('b');
  Add('c');
 end;
end;

Подскажите что делать?


Leonid Troyanovsky   (2005-10-11 14:17:00) [1]


> Rolf   (11.10.05 13:55)  
> При создании наследника TComboBox появляется ошибка: Project
> raised exception class EInvalidOperation with message "Control
> "" has now parent window".
..
> Подскажите что делать?


Лучше заполнять список не в констукторе, а, например, в
procedure CreateWnd; override; т.е., после inherited.

--
Regards, LVT.


Digitman   (2005-10-11 14:06:00) [2]


> что делать?


обеспечить указанные в сообщении об ошибке требования по обязательности определения род.окна перед обращением к списку.

например,

procedure TForm1.Button3Click(Sender: TObject);
begin
 TCmbBoxNew.Createparented(self.Handle);
end;

не должно вызвать подобного исключения, в отличие от

procedure TForm1.Button3Click(Sender: TObject);
begin
 TCmbBoxNew.Create(...);
end;


Ega23   (2005-10-11 14:01:00) [3]

Parent надо указать.


Наверх

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