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;