Hallo,
ich habe hier eine unbestimmte Anzahl von Funktionen mit folgendem Aufbau:
Code:
function TuDies(_Param1);
var
success : Integer;
err : ErrorStruct;
begin
Result := false;
success := -1;
while success < 0 do
try
FDB.Mutex.Acquire;
try
FDB.TuDies(_Param1,err);
finally
FDB.Mutex.Release;
end;
success := FDB.CheckError(err);
Result := success = 0;
except
on E:
Exception do FDB.CheckException(E,success);
end;
end;
function TuDas(_Param1,_Param1);
var
success : Integer;
err : ErrorStruct;
begin
Result := false;
success := -1;
while success < 0 do
try
FDB.Mutex.Acquire;
try
FDB.TuDas(_Param1,_Param,err);
finally
FDB.Mutex.Release;
end;
success := FDB.CheckError(err);
Result := success = 0;
except
on E:
Exception do FDB.CheckException(E,success);
end;
end;
...
Die Funktionen unterscheiden sich nur im Aufruf im try finally Block.
Was für eine Möglichkeit gäbe es, den restlichen Teil auszulagern? Könnte man die eigentliche Funktion irgendwie als Parameter übergeben? Die können ja vom Parameteraufbau vollkommen verschieden sein.
Für Ideen wäre ich dankbar.