Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Properties in TCollection von VirtualStringTree einfügen. (https://www.delphipraxis.net/87409-properties-tcollection-von-virtualstringtree-einfuegen.html)

Meriones 28. Feb 2007 11:42


Properties in TCollection von VirtualStringTree einfügen.
 
Hallo Delphi Profis,

ich möchte in ein TCollectionItem einige neue Properties einfügen, weiss aber nicht wie ich das anstellen soll.

Ich habe mir eine von "TCustomVirtualStringTree" (Virtual String Tree von Mike Lischke) abgeleitete Komponente gebastelt. TCustomVirtualStringTree basiert auf der Klasse "TBaseVirtualTree", die TVTHeader (TPersistent) beinhaltet in der die Collection "TVirtualTreeColumns" drinnen ist.
Etwa so:

Delphi-Quellcode:
TVirtualTreeColumns = class(TCollection);

TVTHeader = class(TPersistent)
  private
    FColumns: TVirtualTreeColumns;
end;

TBaseVirtualTree = class(TCustomControl)
private
    FHeader: TVTHeader;
end;

TCustomVirtualStringTree = class(TBaseVirtualTree);

TMyTree = class(TCustomVirtualStringTree);
Nun würde ich gerne die Items in TVirtualTreeColumns um ein paar Properies erweitern ohne den gesammten Source code vom Virtual String Tree ändern/übernehmen zu müssen.
Also: liebe OOP Profis gibts da irgend eine Möglichkeit?

Viele Grüsse, Cornelius

Meriones 2. Mär 2007 10:12

Re: Properties in TCollection von VirtualStringTree einfügen
 
Wenn es jemanden interessiert, habs rausgefunden :-D

Man muss folgende functionen überschreiben, so das sie die eigene Headerklasse zurückgeben. So kann man den Tree dazu bringen eigene abgeleitete Header Klassen zu verwenden...

Delphi-Quellcode:
    function GetHeaderClass: TVTHeaderClass; override;
    function GetColumnClass: TVirtualTreeColumnClass; override;

function TCaDBGrid3.GetHeaderClass: TVTHeaderClass;
begin
  Result := TMyHeader;
end;

function TCaDBGrid3.GetColumnClass: TVirtualTreeColumnClass;
begin
  Result := TMyTreeColumn;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz