Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.352 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Kopieren des Inhalt eines Record

  Alt 18. Okt 2013, 20: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!
  Mit Zitat antworten Zitat