Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
Delphi 11 Alexandria
|
AW: Kopieren des Inhalt eines Record
18. Okt 2013, 21:53
Ich frage mich immer wieder warum man sich das Leben mit Records so schwer machen kann. Eine TObjectList<TTest> ist doch sehr viel einfacher und bequemer als die ganze Pointer- und Speicherspielerei...
Aber wie dem auch sei... zur Frage:
Delphi-Quellcode:
procedure TMyList.CopyToNewItem(Index: Integer; APTest: PTest);
begin
APTest^ := Self.Items[Index]^;
end;
// EDIT:
Beispiel:
Delphi-Quellcode:
type
PTest = ^TTest;
TTest = record
s1: String;
d1: Double;
i1: Integer;
s2: String;
l1: LongInt;
s3: String;
n1: Int64;
end;
TMyList = class(TList<PTest>)
public
procedure CopyToNewItem(Index: Integer; APTest: PTest);
end;
procedure TMyList.CopyToNewItem(Index: Integer; APTest: PTest);
begin
APTest^ := Self.Items[Index]^;
end;
// Test
var
Test: TMyList;
Current: PTest;
begin
Test := TMyList.Create;
try
New(Current);
Current.s1 := 'Test 1';
Test.Add(Current);
New(Current);
Current.s1 := 'Test 2';
Test.Add(Current);
New(Current);
Current.s1 := 'Nothing';
Test.CopyToNewItem(0, Current);
ShowMessage(Current.s1); // ergibt Test 1
finally
Test.Free;
end;
end;
Sebastian Jänicke Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
|