Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];

Вниз

Ошибка ~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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.005 c
1-19264
Constantine
2002-02-20 14:28
2002.03.07
Промигивание при смене картинок в TImage


1-19224
hair_fly
2002-02-19 12:54
2002.03.07
Как записать полную информацию о форме в stream ?


7-19365
Drv
2001-12-02 14:53
2002.03.07
Реестр


1-19161
IronHawk
2002-02-21 13:47
2002.03.07
Вопрос к многоуважаемым Мастерам ! Как лучше реализовать ?


4-19379
sandman
2002-01-09 13:42
2002.03.07
Как уменьшить объём занимаемой памяти?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский