Bei so tiefer Verschachtelung bietet sich übrigens wieder die Methode mit
try
..
finally
Block an, über die wir schonmal in einem anderen Thread geredet hatten. Also Statt:
Delphi-Quellcode:
if (X) then
begin
if (Y) then
begin
if (Z) then
begin
..
Free(Z);
end;
Free(Y);
end;
Free(X);
end;
einfach
Delphi-Quellcode:
try
if (not X) then Exit;
if (not Y) then Exit;
if (not Z) then Exit;
..
finally
if (X) then Free(X);
if (Y) then Free(Y);
if (Z) then Free(Z);
end;
Vorher natürlich Luckies Tipp befolgen und möglichst viel in logisch sinnvolle Funktionen/Methoden auslagern.
Auf jeden fall. Ich werde eure Ratschläge beherzigen.
Aber wie gesagt heute morgen war ich erst mal froh das alles funktioniert hat.
gruss