Главная страница
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.015 c
2-1239550339
Новичок
2009-04-12 19:32
2009.05.24
Помогите обратиться к параметрам FilterOptions


4-1203581655
Начинающий
2008-02-21 11:14
2009.05.24
Кто обрабатывает нажатие на кнопку в MessageBox ?


15-1236846594
дед Маздай
2009-03-12 11:29
2009.05.24
Подскажите СУБД


15-1237385822
Альф
2009-03-18 17:17
2009.05.24
Как выравнять размер exe кратным 4K


2-1239088527
Cabyrc
2009-04-07 11:15
2009.05.24
Конвертация