AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eine Komponente aus mehreren Einzelteilen zusammensetzen
Thema durchsuchen
Ansicht
Themen-Optionen

Eine Komponente aus mehreren Einzelteilen zusammensetzen

Ein Thema von lizardking · begonnen am 22. Apr 2006 · letzter Beitrag vom 5. Mai 2006
Antwort Antwort
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
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Eine Komponente aus mehreren Einzelteilen zusammensetzen

  Alt 25. Apr 2006, 19:34
Ich würde es mit Hilfe eines Frames und der 3. Variante bauen.
Sven Harazim
--
  Mit Zitat antworten Zitat
lizardking

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

Re: Eine Komponente aus mehreren Einzelteilen zusammensetzen

  Alt 5. Mai 2006, 21:51
Zitat von sh17:
Ich würde es mit Hilfe eines Frames und der 3. Variante bauen.
Huch, hatte schon fast nicht mehr dran geglaubt, dass jemand antwortet und deshalb hier lange nicht reingeschaut (*jetzt mal Benachrichtigunsfunktion fuer Antworten eingeschaltet hab* )

Frames waren wirklich ein guter Denkanstoss. Zwar loese ich die Sache jetzt komplett ohne Frames, aber mir fiel dadurch der richtige Groschen. Mit Frames hab ich das mittlerweile geloest und entwickle es nun als Komponente. Und zwar folgendermassen:

- Es gibt keinen TVirtualSearchStringTree, sondern nur ein TVSTSearchPanel
- Dieses TVSTSearchPanel laesst sich frei und UNABHAENGIG vom VST auf der Form platzieren
- Fuer die Grundfunktionalitaet des SearchPanels braucht man nur den VST und die Suchspalte selektieren, dann laeuft die Sache

Ich weiss jetzt definitiv, dass es alles so funktioniert, wie ich mir das vorstelle. Man ersetzt dann halt nicht den in bestehenden Projekten vorhandenen VST, sondern fuegt halt das SearchPanel irgendwo in die Form ein. Wenn ich die Komponente fertig habe, werd' ich sie mal fuer Verbesserungsvorschlaege hier einstellen.

Gruesse,

Lizzy
  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 18:21 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