Thema: Delphi Enumerator Problem

Einzelnen Beitrag anzeigen

TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.159 Beiträge
 
Delphi 12 Athens
 
#6

AW: Enumerator Problem

  Alt 12. Okt 2025, 17:21
Hallo,

ich verstehe grob was du meinst, bekomme es aber nicht hin.

Hier mal was ich so habe:

Delphi-Quellcode:
  TProductTreeItemList = class;

  TProductTreeItemListEnumerator = class(TObject)
  strict private
    FIndex : Integer;
    FList : TProductTreeItemList;
  public
    constructor Create(AList: TProductTreeItemList);
    function GetCurrent: TObject; inline;
    function GetCurrentT: TProductTreeItem;
    function MoveNext: Boolean; inline;
    property Current: TProductTreeItem
      read GetCurrentT;
  end;

  TProductTreeItemList = class(TObjectList<TProductTreeItem>)
  strict private
    [..]
    function GetEnumerator: TProductTreeItemListEnumerator;
  public
    [..]

    function GetLastGroupProductIndex(GroupID: Integer): TGroupProductIndexRec;
  end;



function TProductTreeItemList.GetEnumerator: TProductTreeItemListEnumerator;
begin
  Result := TProductTreeItemListEnumerator.Create(self);
end;

function TProductTreeItemList.GetLastGroupProductIndex(GroupID: Integer): TGroupProductIndexRec;
var
  NewGroupFound : Boolean;
begin
  NewGroupFound := false;
  Result.GroupIndex := 0;
  Result.NextProductIndex := 0;

// Hier meckert der COmpiler:
// [dcc32 Fehler] ProductManagerTreeDisplay.pas(139): E2431 for-in-Anweisung arbeitet nicht mit Kollektionstyp
// 'System.IEnumerator<ProductTreeItem.TProductTreeItem>', weil 'System.IEnumerator<ProductTreeItem.TProductTreeItem>'
// kein Element für 'GetEnumerator' enthält oder darauf nicht zugegriffen werden kann
  for var GItem in self do
  begin
    if (GItem.NodeType = ntGroup) then
    begin
    end;
  end;
end;
Grüße
TurboMagic
  Mit Zitat antworten Zitat