From 816d45da0cc52844788a070058167539c8a553ad Mon Sep 17 00:00:00 2001 From: inoussa Date: Wed, 18 Jun 2014 10:06:50 +0000 Subject: [PATCH] Method deletion : remove deleted item from the list git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3196 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- wst/trunk/type_lib_edtr/edit_helper.pas | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/wst/trunk/type_lib_edtr/edit_helper.pas b/wst/trunk/type_lib_edtr/edit_helper.pas index 515977ecf..a8dda7b54 100644 --- a/wst/trunk/type_lib_edtr/edit_helper.pas +++ b/wst/trunk/type_lib_edtr/edit_helper.pas @@ -249,6 +249,10 @@ type var AObject : TPasElement; ASymbolTable : TwstPasTreeContainer ):Boolean;override; + class procedure DeleteObject( + AObject : TPasElement; + ASymbolTable : TwstPasTreeContainer + );override; end; { TArgumentUpdater } @@ -566,6 +570,22 @@ begin end; end; +class procedure TMethodUpdater.DeleteObject( + AObject : TPasElement; + ASymbolTable : TwstPasTreeContainer +); +var + owner : TPasClassType; +begin + if (AObject = nil) then + exit; + if (AObject.RefCount > 0) then + raise EWstEditException.CreateFmt(s_CantDeleteStillReferencedObject,[AObject.Name]); + owner := AObject.Parent as TPasClassType; + owner.Members.Extract(AObject); + AObject.Release(); +end; + { TInterfaceUpdater } class function TInterfaceUpdater.CanHandle(AObject : TObject; const AEditAction : TEditType): Boolean;