Hier meine Idee der Umsetzung eines sich selbst erhöhenden Arrays, mit gleichzeitiger Zuweisung von Werten.
Delphi-Quellcode:
interface
type
TMyAddResult = record
MyResult: Boolean;
MyIndex: Integer;
end;
type
TMyTippOfDayRecord = record
Tipp: String;
Info: String;
end;
Type
TMyTippOfDay = Array of TMyTippOfDayRecord;
function Add(var aTippArray: TMyTippOfDay; aTipp, aInfo: String): TMyAddResult;
var
ToDRecord: TMyTippOfDay;
implementation
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;
initialization
if not Add(ToDRecord, 'Bla 1', 'Hallo 1').MyResult then
ShowMessage('Ein Fehler trat auf.');
if not Add(ToDRecord, 'Bla 2', 'Hallo 2').MyResult then
ShowMessage('Ein Fehler trat auf.');
if not Add(ToDRecord, 'Bla 3', 'Hallo 3').MyResult then
ShowMessage('Ein Fehler trat auf.');
if not Add(ToDRecord, 'Bla 4', 'Hallo 4').MyResult then
ShowMessage('Ein Fehler trat auf.');
Ein Zugriff später könnte dann wie folgt passieren:
Delphi-Quellcode:
var
DummyX: Integer;
begin
for DummyX := 0 to Pred(Length(ToDRecord)) do
ShowMessage('Tipp: ' + ToDRecord[DummyX].Tipp + slinebreak+
'Info: ' + ToDRecord[DummyX].Info);
Was ich noch schön fände, wäre, wenn
function Add zu TMyTippOfDay gehören würde. Aber das geht scheinbar nur bei records.
Edit: Code wurde korrigiert.
LG