Einzelnen Beitrag anzeigen

LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#15

AW: For-Schleife als Template mit Prozedur als Parameter?

  Alt 3. Jan 2018, 12:13
Nee. Ich benutze an sehr vielen Stellen im Programm immer wieder denselben Schleifenkopf und vor diesem Schleifenkopf noch eine weitere if-Abfrage.

Etwa so
Delphi-Quellcode:
{ 1 } if Liste.Count > 0 then
  begin
{ 2 }   for i := 0 to Liste.Count - 1 do
   begin
    DieEigentlicheArbeit;
   end;
 end;
Durch das Auslagern des Schleifenkopfes und DieEigentlicheArbeit (das kann alles sein) als Prozedurparameter habe ich { 1 } und { 2 } jetzt nur noch an einer einzigen Stelle.

Delphi-Quellcode:
procedure TForm1.ForLoopList(Func: TFunc<Integer, Boolean>);
var
 i: Integer;
begin
 if Liste.Count = 0 then
  Exit;

 for i := 0 to Liste.Count - 1 do
  begin
   if Func(i) then
    Break;
  end;
end;

ForLoopList(
 function(i: Integer): Boolean
  begin
   Result := DieEigentlicheArbeit;
  end);
Was ich jedoch noch nicht so richtig verstehe, ist die Definition von TFunc. Warum <Integer, Boolean>?

Geändert von LTE5 ( 3. Jan 2018 um 12:16 Uhr)
  Mit Zitat antworten Zitat