Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.168 Beiträge
 
Delphi 12 Athens
 
#14

Re: Freeware - Hilfsprogramm "Schleifentest"

  Alt 7. Mai 2010, 16:13
Delphi-Quellcode:
Procedure TForm1.FormCreate(Sender: TObject);
  Var i: Integer;

  Begin
    For i in TStepper.Create(1, 20, 3) do
      Memo1.Lines.Add(IntToStr(i));
  End;
1 4 7 10 13 16 19

Ich weiß jetzt nur nicht genau ab welcher Delphiversion Enumeratoren eingeführt wurden.


Delphi-Quellcode:
Type TStepper = Class
  Private
    FIndex: Integer;
    FStep: Integer;
    FMax: Integer;
  Public
    Constructor Create(Min, Max, Step: Integer);
    Function GetEnumerator: TStepper;
    Function MoveNext: Boolean;
    Function GetCurrent: Integer;
    Property Current: Integer Read GetCurrent;
  End;

Function TStepper.GetEnumerator: TStepper;
  Begin
    Result := Self;
  End;

Constructor TStepper.Create(Min, Max, Step: Integer);
  Begin
    FIndex := Min - Step;
    FStep := Step;
    FMax := Max;
  End;

Function TStepper.MoveNext: Boolean;
  Begin
    Inc(FIndex, FStep);
    Result := FIndex <= FMax;
  End;

Function TStepper.GetCurrent: Integer;
  Begin
    Result := FIndex;
  End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat