Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Array of Record - Einzelne Fixe Elemente?

  Alt 22. Mai 2008, 22:19
Hi,

du kannst es auch mit einer TObjectList machen. Dabei benutzt du nicht den Record als einzelnes Element, sondern eine eigene Klasse. Etwa so:

Delphi-Quellcode:
TValue = class(TObject)
    ValueFrom : string;
    ValueFromType : string;
    ValueTo : string;
    ValueToType : string;
    ValueSectionA : string;
    ValueSectionB : string;
    ValueSectionC : string;
    ValueSectionD : string;
  end;
Das kannst du dann noch mit diversen Propertys, Getter- und Settermethoden ausschmücken.

Dann verwendest du eine ObjectListe wie folgt:
Delphi-Quellcode:
TValueList = class(TObjectList)
  private
    FListName : String; // Name der Liste
  protected
    function GetItem(Index: Integer): TValue;
    procedure SetItem(Index: Integer; AObject: TValue);
  public
    function Add(AObject: TValue): Integer;
    function Extract(Item: TValue): TValue;
    function Remove(AObject: TValue): Integer;
    function IndexOf(AObject: TValue): Integer;
    procedure Insert(Index: Integer; AObject: TValue);
    function First: TValue;
    function Last: TValue;
    property Items[Index: Integer]: TValue read GetItem write SetItem; default;
    property ListName : String read FListName write FListName;
  end;

{ TValueList }

function TValueList.Add(AObject: TValue): Integer;
begin
  Result := inherited Add(AObject);
end;

function TValueList.Extract(Item: TValue): TValue;
begin
   Result := TValue(inherited Extract(Item));
end;

function TValueList.First: TValue;
begin
   Result := TValue(inherited First);
end;

function TValueList.GetItem(Index: Integer): TValue;
begin
  Result := TValue(inherited GetItem(Index));
end;

function TValueList.IndexOf(AObject: TValue): Integer;
begin
  Result := inherited IndexOf(AObject);
end;

procedure TValueList.Insert(Index: Integer; AObject: TValue);
begin
  inherited Insert(Index, AObject);
end;

function TValueList.Last: TValue;
begin
  Result := TValue(inherited Last);
end;

function TValueList.Remove(AObject: TValue): Integer;
begin
  Result := inherited Remove(AObject);
end;

procedure TValueList.SetItem(Index: Integer; AObject: TValue);
begin
  inherited SetItem(Index, AObject);
end;
Gruß oki
42
  Mit Zitat antworten Zitat