![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему вызывается деструктор фрейма созданного *.Create(nil)?
Kolan © (2009-04-13 12:44:00)Здравствуйте!
Есть фрейм, который создается так:
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
Kolan (2009-04-13 14:47:00) [1]Так, ладно. А при создании серии 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;
}}}
Серии тоже будут удалены автоматом? У них же владелец — чарт, который лежит на форме...
Kolan (2009-04-13 12:52:00) [2]Понятно. Я подозревал, но не верил своим подозрениям. Благодарю.
Palladin (2009-04-13 12:47:00) [3]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1237889881&n=18
Palladin (2009-04-13 12:45:00) [4]Потому что:
SimpleDBAnalysisFrame. Parent := Owner;