From e597ae13069861d92fb752df14caf4faceab601a Mon Sep 17 00:00:00 2001 From: juha Date: Thu, 17 Nov 2011 20:16:25 +0000 Subject: [PATCH] IDE: added a sanity check about if ListView.Selected is assigned. Issue #19819 git-svn-id: trunk@33595 - --- ide/newdialog.pas | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/ide/newdialog.pas b/ide/newdialog.pas index d65bc17244..18c323a531 100644 --- a/ide/newdialog.pas +++ b/ide/newdialog.pas @@ -203,26 +203,27 @@ begin NewFile:=TNewItemProjectFile(FNewItem); if (NewFile.Descriptor is TFileDescInheritedItem) then begin - AInheritedNode := nil; // If we are inheriting from a form if (NewFile.Descriptor is TFileDescInheritedComponent) then begin InhCompItem:=TFileDescInheritedComponent(NewFile.Descriptor); AInheritedNode := InheritableComponentsListView.Selected; - // load the ancestor component - AnUnitInfo:=TUnitInfo(AInheritedNode.Data); - if LazarusIDE.DoOpenComponent(AnUnitInfo.Filename, - [ofOnlyIfExists,ofQuiet,ofLoadHiddenResource,ofUseCache],[], - AncestorComponent)<>mrOk then - begin - MessageDlg(lisErrorOpeningComponent, - lisUnableToOpenAncestorComponent, mtError, [mbCancel], 0); - exit; + if Assigned(AInheritedNode) then begin + // load the ancestor component + AnUnitInfo:=TUnitInfo(AInheritedNode.Data); + if LazarusIDE.DoOpenComponent(AnUnitInfo.Filename, + [ofOnlyIfExists,ofQuiet,ofLoadHiddenResource,ofUseCache],[], + AncestorComponent)<>mrOk then + begin + MessageDlg(lisErrorOpeningComponent, + lisUnableToOpenAncestorComponent, mtError, [mbCancel], 0); + exit; + end; + // Set the resource class of the file descriptor + InhCompItem.ResourceClass := TPersistentClass(AncestorComponent.ClassType); + InhCompItem.InheritedUnit := AnUnitInfo; + InhCompItem.DeclareClassVariable := not AncestorComponent.ClassType.InheritsFrom(TFrame); + //DebugLn(['TNewOtherDialog.OKButtonClick ',InhCompItem.InheritedUnit.Filename,' ',dbgsname(InhCompItem.ResourceClass)]); end; - // Set the resource class of the file descriptor - InhCompItem.ResourceClass := TPersistentClass(AncestorComponent.ClassType); - InhCompItem.InheritedUnit := AnUnitInfo; - InhCompItem.DeclareClassVariable := not AncestorComponent.ClassType.InheritsFrom(TFrame); - //DebugLn(['TNewOtherDialog.OKButtonClick ',InhCompItem.InheritedUnit.Filename,' ',dbgsname(InhCompItem.ResourceClass)]); end else begin