Ja, schon besser, aber in einer Zeile sollte eigentlich nur eine Anweisung stehen.
Delphi-Quellcode:
function DeletePicture(PicInfo:Pointer): Boolean;
var I,Index: Integer;
ptr2: ^TPictureInfo; // Addresse auf Eintrag im Dyn. Array Picture
begin
Result:=False;
Index:=-1;
for I:=0 to Count-1 do // Array durchlaufen
begin
ptr2:=@Picture[I]; // Addresse des Eintrags holen
// wenn übergebende Addresse = Addresse des Eintrags speichere Index
if PicInfo = ptr2 then
Index:=I;
end;
ptr2:=nil; //Pointer nicht mehr benötigt
if Index <> -1 then
begin
//"Lücke" im Array mit nachfolgenden Füllen
for I:=Index to high(Picture)-1 do
Picture[I]:=Picture[I+1];
SetLength(Picture,Count-1); //Array um eins kürzen
Result:=True;
end;
end;
(Wie man die reservierten Wörter schreibt, ist mir eigentlich egal)
Mich würde aber eher interessieren, ob meine Vermutung stimmt
.