mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 17:39:23 +02:00
LCL,IDE: Turn TMenuItem.Delete into a function returning the TMenuItem. Delete+Free unused MenuItems correctly in IDE's code. Issue #36776.
git-svn-id: trunk@62728 -
This commit is contained in:
parent
4fe3c9d4be
commit
33ed35c417
@ -1042,7 +1042,7 @@ begin
|
||||
end;
|
||||
// delete not needed items
|
||||
while fTypePopupMenu.Items.Count>TypeColumn.PickList.Count do
|
||||
fTypePopupMenu.Items[fTypePopupMenu.Items.Count-1].Free;
|
||||
fTypePopupMenu.Items.Delete(fTypePopupMenu.Items.Count-1).Free;
|
||||
|
||||
XY:=Point(0,0);
|
||||
i:=TypeColumn.PickList.Count-1;
|
||||
|
@ -365,7 +365,7 @@ begin
|
||||
AddMode(i, Project1.BuildModes[i]);
|
||||
// remove unused menuitems
|
||||
while Items.Count > CurIndex do
|
||||
Items[Items.Count - 1].Free;
|
||||
Items.Delete(Items.Count-1).Free;
|
||||
|
||||
inherited DoPopup(Sender);
|
||||
end;
|
||||
@ -448,7 +448,7 @@ begin
|
||||
end;
|
||||
// remove unneeded items
|
||||
while SetDefaultMenuItem.Count>TheIndex do
|
||||
SetDefaultMenuItem.Items[SetDefaultMenuItem.Count-1].Free;
|
||||
SetDefaultMenuItem.Items.Delete(SetDefaultMenuItem.Count-1).Free;
|
||||
end;
|
||||
|
||||
class procedure TNewFormUnitToolButton.UpdateHints;
|
||||
|
@ -152,26 +152,17 @@ begin
|
||||
//DebugLn('TMenuItem.CreateHandle END ',Name,':',ClassName);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
Method: TMenuItem.Delete
|
||||
Params: Index:
|
||||
Returns: Nothing
|
||||
|
||||
Description of the procedure for the class.
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TMenuItem.Delete(Index: Integer);
|
||||
var
|
||||
Cur: TMenuItem;
|
||||
function TMenuItem.Delete(Index: Integer): TMenuItem;
|
||||
begin
|
||||
if (Index < 0) or (FItems = nil) or (Index >= GetCount) then
|
||||
raise EMenuError.Create(SMenuIndexError);
|
||||
Cur := TMenuItem(FItems[Index]);
|
||||
if Cur = nil then
|
||||
Result := TMenuItem(FItems[Index]);
|
||||
if Result = nil then
|
||||
raise EMenuError.Create(SMenuItemIsNil);
|
||||
Cur.DestroyHandle;
|
||||
Result.DestroyHandle;
|
||||
FItems.Delete(Index);
|
||||
Cur.FParent := nil;
|
||||
Cur.FOnChange := nil;
|
||||
Result.FParent := nil;
|
||||
Result.FOnChange := nil;
|
||||
InvalidateMergedItems;
|
||||
MenuChanged(Count = 0);
|
||||
end;
|
||||
|
@ -265,7 +265,7 @@ type
|
||||
procedure Add(const AItems: array of TMenuItem);
|
||||
procedure AddSeparator;
|
||||
procedure Click; virtual;
|
||||
procedure Delete(Index: Integer);
|
||||
function Delete(Index: Integer): TMenuItem;
|
||||
procedure HandleNeeded; virtual;
|
||||
procedure Insert(Index: Integer; Item: TMenuItem);
|
||||
procedure RecreateHandle; virtual;
|
||||
|
Loading…
Reference in New Issue
Block a user