mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-09 18:08:35 +02:00
lcl: add TMenuItemEnumerator class, TMenuItem.GetEnumerator method
git-svn-id: trunk@22408 -
This commit is contained in:
parent
c0db1937f5
commit
dd8b4c7a0b
@ -215,6 +215,11 @@ begin
|
||||
Result := Items[Idx];
|
||||
end;
|
||||
|
||||
function TMenuItem.GetEnumerator: TMenuItemEnumerator;
|
||||
begin
|
||||
Result := TMenuItemEnumerator.Create(Self);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
function TMenuItem.GetImageList: TCustomImageList;
|
||||
|
||||
|
32
lcl/menus.pp
32
lcl/menus.pp
@ -96,6 +96,18 @@ type
|
||||
|
||||
TMenuActionLinkClass = class of TMenuActionLink;
|
||||
|
||||
{ TMenuItemEnumerator }
|
||||
|
||||
TMenuItemEnumerator = class
|
||||
private
|
||||
FMenuItem: TMenuItem;
|
||||
FPosition: Integer;
|
||||
function GetCurrent: TMenuItem;
|
||||
public
|
||||
constructor Create(AMenuItem: TMenuItem);
|
||||
function MoveNext: Boolean;
|
||||
property Current: TMenuItem read GetCurrent;
|
||||
end;
|
||||
|
||||
{ TMenuItem }
|
||||
|
||||
@ -203,6 +215,7 @@ type
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
function Find(const ACaption: string): TMenuItem;
|
||||
function GetEnumerator: TMenuItemEnumerator;
|
||||
function GetImageList: TCustomImageList; virtual;
|
||||
function GetParentComponent: TComponent; override;
|
||||
function GetParentMenu: TMenu; virtual;
|
||||
@ -554,6 +567,25 @@ begin
|
||||
if ShortCut and scMeta <> 0 then Include(Shift,ssMeta);
|
||||
end;
|
||||
|
||||
{ TMenuItemEnumerator }
|
||||
|
||||
function TMenuItemEnumerator.GetCurrent: TMenuItem;
|
||||
begin
|
||||
Result := FMenuItem.Items[FPosition];
|
||||
end;
|
||||
|
||||
constructor TMenuItemEnumerator.Create(AMenuItem: TMenuItem);
|
||||
begin
|
||||
FMenuItem := AMenuItem;
|
||||
FPosition := -1;
|
||||
end;
|
||||
|
||||
function TMenuItemEnumerator.MoveNext: Boolean;
|
||||
begin
|
||||
inc(FPosition);
|
||||
Result := FPosition < FMenuItem.Count;
|
||||
end;
|
||||
|
||||
finalization
|
||||
FreeThenNil(CommandPool);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user