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

Вниз

Ошибка ~Control has no parent window~ помогите разобраться почему   Найти похожие ветки 

 
1g0r ©   (2002-02-21 19:06) [0]

Такой код:


unit ProbeView;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls;

type
TProbeView = class(TCustomListView)
private
FDefaultIcon: TIcon;
procedure SetDefIcon(Value: TIcon);
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property DefaultIcon: TIcon read FDefaultIcon write SetDefIcon;
property Items;
property LargeImages;
end;

procedure Register;

implementation

procedure TProbeView.SetDefIcon(Value: TIcon);
begin
if Assigned(FDefaultIcon)
then FDefaultIcon.Assign(Value)
else ShowMessage("ooops...")
end;

constructor TProbeView.Create(AOwner: TComponent);
var Item: TListItem;
begin
ShowMessage("Create");
FDefaultIcon := TIcon.Create;

inherited Create(AOwner);

LargeImages := TImageList.Create(Self);

Item := Items.Add;
Item.Caption := "This"
end;

destructor TProbeView.Destroy;
begin
ShowMessage("Destroy");
FDefaultIcon.Free;
LargeImages.Free;
inherited Destroy
end;

procedure Register;
begin
RegisterComponents("probe", [TProbeView]);
end;

end.


при попытке положить компоненту на форму
последовательно вызывается конструктор Create
затем destructor Destroy (почему - не пойму)
и все это завершается ошибкой ~Control "" has no parent window~
Control-ом в данном случае, как я понял, служит Items

Сижу вот и решил что мне нужна помощь...

заранее спасибо, 1g0r


 
1g0r ©   (2002-02-21 20:07) [1]

Ok, вопрос слегка меняется:

а с какой это радости Destroy вызывается?

1g0r


 
Набережных С.   (2002-02-21 21:06) [2]


> а с какой это радости Destroy вызывается?

Потому, что в конструкторе генерится исключение. А исключение возникает потому, что для создания итемов компоненту требуется хэндл окна. Создай свой компонент динамически и, когда остановится по исключению, посмотри стек вызовов.
P.S. Не забудь включить использование отладочных файлов.



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
3-19041
Laimer
2002-02-01 12:01
2002.03.07
Access


3-19076
SergeySA
2002-02-08 17:33
2002.03.07
Как лечить Error creating cursor handle при запросе с записью результата в базу


1-19250
plash07
2002-02-19 17:44
2002.03.07
Как правильно перенести код из VB в Delphi?


3-19058
ol
2002-02-07 16:05
2002.03.07
Как в MSSQL в SQL работать с датами


1-19269
hooky-mars
2002-02-20 19:19
2002.03.07
Tstrings