Hier meine Idee der Umsetzung eines sich selbst erhöhenden Arrays, mit gleichzeitiger Zuweisung von Werten.
Da muss ich doch gleich mal meckern:
Delphi-Quellcode:
function Add(var aTippArray: TMyTippOfDay; aTipp, aInfo: String): TMyAddResult;
var
DummyIndex: Integer;
begin
Dummyindex := 1;
try
try
if Length(aTippArray) > 0 then
DummyIndex := Succ(Length(aTippArray));
SetLength(aTippArray, DummyIndex);
aTippArray[Pred(DummyIndex)].Tipp := aTipp;
aTippArray[Pred(DummyIndex)].Info := aInfo;
finally
Result.MyIndex := DummyIndeX;
Result.MyResult := True;
end;
except
Result.MyResult := False;
Result.MyIndex := -1;
end;
end;
Diese ganze Rechnerei mit dem Index ist doch unnötig:
Delphi-Quellcode:
begin
try
try
DummyIndex := Length(aTippArray);
SetLength(aTippArray, DummyIndex+1);
aTippArray[DummyIndex].Tipp := aTipp;
aTippArray[DummyIndex].Info := aInfo;
Inc(DummyIndex);
finally
Result.MyIndex := DummyIndex;
Result.MyResult := True;
end;
except
Result.MyResult := False;
Result.MyIndex := -1;
end;
end;
macht genau dasselbe und ist einfacher zu lesen. Wobei ich mir nicht ganz sicher bin, was MyIndex sein soll. Der Index des neu hinzugefügten Wertes? In dem Fall entfällt das Inc(DummyIndex).