[Delphi] Почему не работает такой компонент?

peter1dav


unit FontList;
interface
uses
SysUtils, Classes, Controls, StdCtrls;
type
TFontList = class(TComboBox)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('My components', [TFontList]);
end;
constructor TFontList.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
Items.Add('text')
end;
end.


При попытки добавить его на форму вылазит ошибка

Как с этим бороться?
ЗЫ... тока не пинайте ногами

Selena

Мы не можем обращаться к свойству Items, пока не доступен дескриптор окна.
А он не доступен, пока не определнно свойство Parent(Оно определяется не в конструторе).
Можно иснользовать процедуру CreateWnd(вызывется полсле того как компонент создан)
(с) Книжка
т.е.


unit FontList;
interface
uses
SysUtils, Classes, Controls, StdCtrls;
type
TFontList = class(TComboBox)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
procedure CreateWnd; override;
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('My components', [TFontList]);
end;
{ TFontList }
constructor TFontList.CreateWnd;
begin
inherited CreateWnd;
Items.Add('');
end;
end.

peter1dav

Спасибо.
А чего за книжка?
Есть ли электронный вариант?

Selena

Марко Кэнту. Delphi 6 для профессионалов(Mastering Delphi 6)
Электрогый вармант есть на английском.(На русском, сомневаюсь.В книжке ~1100 стр.)
P.S. не забываем про инет.

peter1dav

Тяжеленькая книжечка
Оставить комментарий
Имя или ник:
Комментарий: