Einzelnen Beitrag anzeigen

Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#1

TList und record: Auf Variablen zugreifen

  Alt 6. Sep 2006, 11:41
Hallo,

habe folgenden Code:

Delphi-Quellcode:
TFeedItem = record
    Title,
    Description,
    Author,
    URL : String;
    DateTime : TDateTime;
  end;

  TFeedItemClass = class(TPersistent)
    private
      fItems: TList;
      function GetItem(Index: Integer): TFeedItem;
      procedure SetItem(Index: Integer; const FeedItem: TFeedItem);
      function GetCount: Integer;
    public
      constructor Create;
      destructor Destroy; override;
      procedure AddItem(const FeedItem: TFeedItem);
      procedure RemoveItem(Index: Integer);
      procedure Clear;
      property Items[Index: Integer]: TFeedItem read GetItem write SetItem;
      property Count: Integer read GetCount;
  end;

function TFeedItemClass.GetItem(Index: Integer): TFeedItem;
begin
  Result := TFeedItem(fItems[Index]^);
end;

procedure TFeedItemClass.SetItem(Index: Integer; const FeedItem: TFeedItem);
begin
  fItems[Index] := @FeedItem;
end;
Nun ist es möglich, dass ich z.B. folgendes machen kann:

Delphi-Quellcode:
var
  Item: TFeedItem;
begin
  Item.Title := 'sdfsdf';
  FeedItemClass.Items[5] := Item;
end;
Damit würde das 5. Item mit den neuen Daten überschrieben werden. (In diesem Beispiel existiert das 5. Item natürlich!)

Es ist aber nicht möglich folgendes zu machen:

  FeedItemClass.Items[5].Title := 'sdfsdfs'; Da meckert der Compiler, dass auf Title nur lesend zugegriffen werden kann.

Wo muss ich nun was anpassen, damit ich normal auf die Variablen zugreifen kann?

Gruß
Sascha
Sascha
  Mit Zitat antworten Zitat