Einzelnen Beitrag anzeigen

lizardking

Registriert seit: 2. Sep 2005
76 Beiträge
 
Delphi 7 Enterprise
 
#1

Eine Komponente aus mehreren Einzelteilen zusammensetzen

  Alt 22. Apr 2006, 23:27
Hallo zusammen,

stehe momentan vor einem kleinen Problemchen. Und zwar will ich eine Komponente entwickeln, die wiederum aus mehreren kleinen Komponenten besteht und sich nach aussen hin verhaelt wie die Hauptkomponente. Mann... was ein ein Satz ;-) Ganz konkret, damit man sich vorstellen kann, was ich meine :

Ich moechte eine Art TVirtualSearchStringTree entwickeln. Dieser soll genau wie ein normaler VST angesprochen werden koennen, aber noch eine Zusatzfunktionalitaet bekommen. Es soll ein Panel da sein, darin ein VST mit Align auf alClient und ein weiteres Panel mit Align auf alBottom, dass ein Edit-Feld fuer die Suche hat.

Folgende Loesungsansaetze habe ich :

1. Komponente von TPanel ableiten, die den VST quasi als Property hat. Die Loesung finde ich aber recht unattraktiv, da ich dann in meinem kompletten Projekt die Codezeilen mit den Zugriffen aendern muesste. Ich muesste ja jeden einzelnen Zugriff a la "VST.GetNodeData" umaendern in "MeineCompo.VST.GetNodeData".

2. Komponente von TVirtualStringTree ableiten. Dann muesste ich aber wahrscheinlich komplett alle Paint-Methoden neu implementieren, oder ? Also falls die Suchfunktion aktiv ist, den Stringtree unten 20 Pixel kuerzen und da von Hand das Editfeld zeichnen etc...

3. Komponente von TPanel ableiten und alle Funktionen vom VST quasi durch sowas wie Proxy-Funktionen implementieren. Ungefaehr so :

Delphi-Quellcode:
function TBaseVirtualTree.GetNodeData(Node: PVirtualNode): Pointer;
begin
  result := FVirtualStringTree.GetNodeData(Node: PVIrtualNode);
end;

Gibt es da keine einfachere Loesung ?

Fuer Anregungen und Hilfe bin ich dankbar.

Gruss, Lizzy
  Mit Zitat antworten Zitat