Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Kopieren des Inhalt eines Record

  Alt 20. Okt 2013, 09:59
ObjectLists sind (im Gegensatz zu Records) vergleichsweise problemlos und einfach zu handhaben. Ich hab noch Delphi2007, deshlab muß ich die property Items überschreiben (brauchst du bei <TTest> nicht).

Delphi-Quellcode:
uses
  .. Contnrs;

type
  TTest = class
  private
    FD1: Double;
    FN1: Int64;
    FI1: Integer;
    FL1: LongInt;
    FS1: String;
    FS2: String;
    FS3: String;
  public
    property D1: Double read FD1 write FD1;
    property N1: Int64 read FN1 write FN1;
    property I1: Integer read FI1 write FI1;
    property L1: LongInt read FL1 write FL1;
    property S1: String read FS1 write FS1;
    property S2: String read FS2 write FS2;
    property S3: String read FS3 write FS3;
    procedure Clear;
    procedure Assign(Value: TTest);
  end;

  TTestList = class(TObjectList)
  private
    function GetItems(Index: integer): TTest;
  public
    property Items[Index: integer]: TTest read GetItems; default;
  end;

..

{ TTest }

procedure TTest.Assign(Value: TTest);
begin

end;

procedure TTest.Clear;
begin

end;

{ TTestList }

function TTestList.GetItems(Index: integer): TTest;
begin
  Result := TTest(inherited Items[Index]);
end;

..

var
  TestList: TTestList;
  Index: integer;
begin
  TestList := TTestList.Create;
  try
    // Hinzufügen von Items;
    Index := TestList.Add(TTest.Create);
    TestList[Index].Clear; // Das z.B. ginge bei einem Record nicht
    TestList[Index].S1 := 'Hello TObjectList';
    // Löschen von Items;
    TestList.Delete(Index);
  finally
    TestList.Free;
  end;
end;

Geändert von Bjoerk (20. Okt 2013 um 10:01 Uhr)
  Mit Zitat antworten Zitat