moin,
sagen wir mal ich habe folgendes:
Delphi-Quellcode:
type
TMyRecord = record
str: string;
end;
TRecords = array of TMyRecord;
TMyClass = class(TObject)
private
fRecords: TRecords;
public
function GetRecord(idx: integer): TMyRecord;
property Records[idx: integer]: TMyRecord read GetRecord; default;
end;
...
function TMyClass.GetRecord(idx: integer): TMyRecord;
begin
if (not(idx < low(fRecordArray))) and (not(idx > high(fRecordArray))) then
result := fRecordArray[idx];
end;
wenn ich nun eine instanz von "TMyClass" habe (MyCLass) und möchte im array mein zweiten Rekord ansprechen (MyClass.Records[1]) und dessen string ändern (MyClass.Records[1].str := 'irgendwas') dann schreibe ich doch nicht wirklich in meinem array oder? denn soweit ich weiss gibt die funktion GetRecord eine KOPIE des records zurück und bezieht sich nicht aufs array. meine idee wär nun gewesen einen pointer auf diesen typ zu definieren (PMyRecord = ^TMyRecord) und mir in der funktion PRecord zurückgeben lasse...
aber kann ich dann ein rekord überhaupt noch so ansprechen: "MyClass.Record[1].str" ? Muss ich dann nicht (
): "MyClass.Record[1]^.str" benutzen?