From 66d80bdeab4b9a89202a95d3ebe3f72948c6346a Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Wed, 11 Nov 2009 20:20:07 +0000 Subject: [PATCH] Avoid accessing GetParentForm if it's already destroyed - hopefully fixes issue #1462 --- source/main.pas | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source/main.pas b/source/main.pas index dfc018dc..5387f310 100644 --- a/source/main.pas +++ b/source/main.pas @@ -5513,6 +5513,7 @@ procedure TMainForm.SaveListSetup( List: TVirtualStringTree ); var i : Byte; ColWidths, ColsVisible, ColPos, Regname: String; + OwnerForm: TCustomForm; begin ColWidths := ''; ColsVisible := ''; @@ -5540,8 +5541,15 @@ begin end; OpenRegistry; Regname := List.Name; - if GetParentForm(List) <> Self then - Regname := GetParentForm(List).Name + '.' + Regname; + OwnerForm := GetParentForm(List); + if OwnerForm <> Self then begin + // On a windows shutdown, GetParentForm() seems sporadically unable to find the owner form + // In that case we would cause an exception when accessing it. Emergency break in that case. + // See issue #1462 + if not Assigned(OwnerForm) then + Exit; + Regname := OwnerForm.Name + '.' + Regname; + end; MainReg.WriteString( REGPREFIX_COLWIDTHS + Regname, ColWidths ); MainReg.WriteString( REGPREFIX_COLSVISIBLE + Regname, ColsVisible ); MainReg.WriteString( REGPREFIX_COLPOS + Regname, ColPos );