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

Вниз

Почему вызывается деструктор фрейма созданного *.Create(nil)?   Найти похожие ветки 

 
Kolan ©   (2009-04-13 12:44) [0]

Здравствуйте!

Есть фрейм, который создается так:

procedure TSimpleDBAnalysisColleague.CreateFrame(Owner: TWinControl);
begin
 SimpleDBAnalysisFrame := TSimpleDBAnalysisFrame.Create(nil);
 SimpleDBAnalysisFrame.Parent := Owner;
 SimpleDBAnalysisFrame.Align := alClient;
 SimpleDBAnalysisFrame.MeasurementsDeleteVisitor := GetMeasurementsDeleteVisitor;
 SimpleDBAnalysisFrame.MeasuremantsOpenVisitor := GetMeasurementsOpenVisitor;
 SimpleDBAnalysisFrame.ParamsDictionaryLoadVisitor := GetParamsDictionaryLoadVisitor;
 SimpleDBAnalysisFrame.SimpleSettingsManager := GetSettingsManager;
end;


Вопрос: Почему деструктор этого фрейма вызывается автоматически?

Под автоматическим вызовом подразумевается следующее (стек):
KFreGrafSimpleDBAnalysisFrame.TSimpleDBAnalysisFrame.Destroy
Controls.TWinControl.Destroy
ComCtrls.TTabSheet.Destroy
Controls.TWinControl.Destroy
ComCtrls.TCustomTabControl.Destroy
ComCtrls.TPageControl.Destroy
Controls.TWinControl.Destroy
Forms.TScrollingWinControl.Destroy
Forms.TCustomForm.Destroy
Classes.TComponent.DestroyComponents
Forms.DoneApplication
SysUtils.DoExitProc
System.@Halt0
KFreGraf.KFreGraf
:0057eb53 TSimpleDBAnalysisFrame.Destroy + $B


 
Palladin ©   (2009-04-13 12:45) [1]

Потому что:

SimpleDBAnalysisFrame.Parent := Owner;


 
Palladin ©   (2009-04-13 12:47) [2]

http://delphimaster.net/view/2-1237889881/


 
Kolan ©   (2009-04-13 12:52) [3]

Понятно. Я подозревал, но не верил своим подозрениям. Благодарю.


 
Kolan ©   (2009-04-13 14:47) [4]

Так, ладно. А при создании серии TeeCharta таким способом:

{{{
constructor TSerieGraph.Create(Chart: TChart; Color: TColor);
begin
 inherited;
 FChart := Chart;
FSerie := CreateSerie(FChart);
 FSerie.SeriesColor := Color;
 FChart.AddSeries(FSerie);
end;

function TSerieGraph.CreateSerie(AOwner: TComponent): TChartSeries;
begin
 Result := TChartSeries.Create(AOwner);
end;
}}}

Серии тоже будут удалены автоматом? У них же владелец — чарт, который лежит на форме...



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
15-1237367541
Andy BitOff
2009-03-18 12:12
2009.05.24
Как выйти из рекурсии


15-1237445511
Дмитрий С
2009-03-19 09:51
2009.05.24
Как узнать атрибуты файла в php


2-1238993664
Alex_C
2009-04-06 08:54
2009.05.24
Как быстрее обратиться к полям таблицы?


15-1237464519
vajo
2009-03-19 15:08
2009.05.24
Помогите выбрать HDD


2-1239395171
Johnnnnn
2009-04-11 00:26
2009.05.24
Строка или текст через clipboard , незнаю как правильно.