diff --git a/components/projectgroups/projectgroup.pp b/components/projectgroups/projectgroup.pp index 3453878a10..296fc6244a 100644 --- a/components/projectgroups/projectgroup.pp +++ b/components/projectgroups/projectgroup.pp @@ -638,7 +638,10 @@ var Target: TPGCompileTarget; begin Target:=Targets[Index]; + Target.DeActivate; + FTargets.OwnsObjects:=false; FTargets.Delete(Index); + FTargets.OwnsObjects:=true; FRemovedTargets.Add(Target); Target.Removed:=true; if Assigned(FOnTargetDeleted) then diff --git a/components/projectgroups/projectgroupeditor.pas b/components/projectgroups/projectgroupeditor.pas index 25a7b2cdc3..31293db0b7 100644 --- a/components/projectgroups/projectgroupeditor.pas +++ b/components/projectgroups/projectgroupeditor.pas @@ -702,8 +702,8 @@ Var T: TPGCompileTarget; begin T:=SelectedTarget; - if T=nil then exit; - FProjectGroup.RemoveTarget(T); + if (T=nil) or (T.Parent=nil) then exit; + T.Parent.ProjectGroup.RemoveTarget(T); end; procedure TProjectGroupEditorForm.AProjectGroupDeleteUpdate(Sender: TObject); @@ -711,7 +711,7 @@ Var T: TPGCompileTarget; begin T:=SelectedTarget; - (Sender as TAction).Enabled:=(T<>Nil) and (T<>ProjectGroup.CompileTarget) and Not T.Removed; + (Sender as TAction).Enabled:=(T<>nil) and (T<>ProjectGroup.CompileTarget) and Not T.Removed; UpdateIDEMenuCommandFromAction(Sender,cmdTargetRemove); end; diff --git a/components/projectgroups/projectgroupintf.pp b/components/projectgroups/projectgroupintf.pp index b7581ebc38..b5acc27b72 100644 --- a/components/projectgroups/projectgroupintf.pp +++ b/components/projectgroups/projectgroupintf.pp @@ -454,8 +454,6 @@ procedure TPGCompileTarget.SetRemoved(const AValue: boolean); begin if Removed=AValue then exit; FRemoved:=AValue; - if FRemoved then - Deactivate; end; procedure TPGCompileTarget.Activate;