Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Record ist nicht vollständig definiert

  Alt 25. Sep 2006, 21:59
zum Beispiel so:
Delphi-Quellcode:
type
  TDPTreeItems = class(TObject)
  private
    fChilds : TList;
    fNodeName: String;
    function GetItem(AIndex: Integer): TDPTreeItems;
  public
    constructor Create();
    destructor Destroy(); override;

    function Add(): Integer;
    function Count(): Integer;
    procedure Clear();
    procedure Delete(AIndex: Integer);

    property Childs[AIndex: Integer]: TDPTreeItems read GetItem;
    property NodeName: String read fNodeName write fNodeName;
  end;
[...]

function TDPTreeItems.Add: Integer;
var
  lItem : TDPTreeItems;
begin
  lItem := TDPTreeItems.Create();
  result := fChilds.Add(lItem);
end;

procedure TDPTreeItems.Clear;
var
  lCount : Integer;
begin
  for lCount := Count - 1 downto 0 do
    TObject(Childs[lCount]).Free;
  fChilds.Clear;
end;

function TDPTreeItems.Count: Integer;
begin
  result := fChilds.Count;
end;

constructor TDPTreeItems.Create;
begin
  inherited Create;
  fChilds := TList.Create;
end;

procedure TDPTreeItems.Delete(AIndex: Integer);
begin
  Childs[AIndex].Free;
  fChilds.Delete(AIndex);
end;

destructor TDPTreeItems.Destroy;
begin
  Clear();
  fChilds.Free;
  inherited Destroy;
end;

function TDPTreeItems.GetItem(AIndex: Integer): TDPTreeItems;
begin
  result := TDPTreeItems(fChilds.Items[AIndex]);
end;
Eine Insert-Methode etc. hinzuzufügen dürfte nicht das Problem sein.
Vorteil: Wenn du zum setzen von "NodeName" eine SetMethode hinterlegst kannst du noch sicherstellen das es kein anderes Node mit gleichem Namen gibt etc.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat