AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Verwalten von Objekten in einer Container-Klasse
Tutorial durchsuchen
Ansicht
Themen-Optionen

Verwalten von Objekten in einer Container-Klasse

Ein Tutorial von Luckie · begonnen am 12. Mär 2007 · letzter Beitrag vom 17. Apr 2007
Antwort Antwort
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#1

Re: Verwalten von Objekten in einer Container-Klasse

  Alt 15. Mär 2007, 21:53
Zitat von Elvis:
Eine streng typisierte Liste durch Erben von TList ist ein Ding der Unmöglichkeit.
Es könnte sein, das ich schon etwas eingerostet bin. Aber das sollte ein streng typisierter Nachfahre von
TList sein. Sieht eigentlich ganz einfach aus.
Delphi-Quellcode:
unit Unit2;

interface

uses classes;

Type

  TMyListItem = class(TObject)
  private
    FName: String;
    procedure SetName(const Value: String);
  public
    property Name : String read FName write SetName;
  end;

  TMyListItems = class(TList)
  protected
    function Get(Index: Integer): TMyListItem;
    procedure Put(Index: Integer; const Value: TMyListItem);
  public
    function Add : TMyListItem;
    procedure Clear; override;
    function Extract(Item: TMyListItem): TMyListItem;
    function First: TMyListItem;
    function IndexOf(Item: TMyListItem): Integer;
    procedure Insert(Index: Integer; Item: TMyListItem);
    function Last: TMyListItem;
    property Items[Index: Integer]: TMyListItem read Get write Put; default;
  end;

  implementation

{ TMyListItem }

procedure TMyListItem.SetName(const Value: String);
begin
  FName:=Value;
end;

{ TMyListItems }

function TMyListItems.Add: TMyListItem;
begin
  Result:=TMyListItem.Create;
  inherited Add(Result);
end;

procedure TMyListItems.Clear;
var
  iCnt : Integer;
begin
  For iCnt := 0 to Count - 1 do
    TObject(Items[iCnt]).Free;
  inherited Clear;
end;

function TMyListItems.Extract(Item: TMyListItem): TMyListItem;
begin
  Result:=TMyListItem(inherited Extract(Item));
end;

function TMyListItems.First: TMyListItem;
begin
  Result:=TMyListItem(inherited First);
end;

function TMyListItems.Get(Index: Integer): TMyListItem;
begin
  Result:=TMyListItem(inherited Get(Index));
end;

function TMyListItems.IndexOf(Item: TMyListItem): Integer;
begin
  Result:=inherited IndexOf(Item);
end;

procedure TMyListItems.Insert(Index: Integer; Item: TMyListItem);
begin
  inherited Insert(Index,Item);
end;

function TMyListItems.Last: TMyListItem;
begin
  Result:=TMyListItem(inherited Last);
end;

procedure TMyListItems.Put(Index: Integer; const Value: TMyListItem);
begin
  inherited Put(Index,Value);
end;

end.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz