Wenn ich das richtig sehe, dann müsste es so auch DRY werden.
Delphi-Quellcode:
function ProcessAction : Boolean;
var
varCurrActClass : TLastActionClass;
i : integer;
begin
try
for i := 0 to FLastActionList.Count -1 do
begin
varCurrActClass := FLastActionList.Items[i];
if
{Bedingung1} (...)
{oder} or
{Bedingung2} (...)
then
begin
FLastActionList.Remove(varCurrActClass);
FLastActionList.TrimExcess;
exit(true);
end;
end;
exit(false);
finally
{Wenn es noch etwas zu tun gibt, wird quasi immer ausgeführt}
end;
end;
begin
while ProcessAction( ) do;
end;
Aber wenn ich es mir so richtig anschaue, dann müsste sich das komplett so abtüten lassen:
Delphi-Quellcode:
procedure ProcessAction;
var
varCurrActClass : TLastActionClass;
i : integer;
begin
for i := FLastActionList.Count -1 downto 0 do
begin
varCurrActClass := FLastActionList.Items[i];
if
{Bedingung1} (...)
{oder} or
{Bedingung2} (...)
then
begin
FLastActionList.Delete( i );
end;
end;
FLastActionList.TrimExcess;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)