TreeView-Komponente wird nicht registriert

Rund um die LCL und andere Komponenten
Antworten
Kay
Beiträge: 134
Registriert: So 14. Nov 2010, 15:17

TreeView-Komponente wird nicht registriert

Beitrag von Kay »

Hallo zusammen,

wie mir gerade aufgefallen ist, wird die Komponente TTreeView bzw. TCustomTreeView im Win32-Widgetset nicht registriert, d. h. die Methode RegisterCustomTreeView gibt lediglich den Wert False zurück und macht sonst nichts weiter. Das macht die TreeView-Komponente inkompatibel.
Ich würde gern auch für TCustomTreeView eine entsprechende WS-Klasse erstellen. Leider habe ich keine Ahnung, wie diese zu implementieren ist, genauer gesagt, ich weiß nicht welche Methoden benötigt werden oder welche Flags gesetzt werden müssen. Vielleicht könnte mir jemand dabei helfen? Wäre echt super!

Vielen Dank und viele Grüße
Kay

BeniBela
Beiträge: 321
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: TreeView-Komponente wird nicht registriert

Beitrag von BeniBela »

Das TreeView wird komplett von der LCL gezeichnet, praktisch unabhängig vom WidgetSet.
Du kannst also einfach TCustomTreeView ableiten, um es zu ändern.

Kay
Beiträge: 134
Registriert: So 14. Nov 2010, 15:17

Re: TreeView-Komponente wird nicht registriert

Beitrag von Kay »

Hm und wenn ich den TreeView vom System aufbauen lassen will? Schließlich werden ja auch ListView, ToolBar, ListBox etc. auf diese Weise im System registriert, was dann eine ziemlich inkonsistente Lösung wäre, da die Kompomenten auf unterschiedliche Weise entstehen. Eine explizite Registrierung der Komponentenklasse hätte auch den Vorteil, dass der TreeView von Windows als solcher erkannt und behandelt wird. Momentan wird der TreeView nämlich nur als irgendein x-beliebiges (allgemeines) Steuerelement erkannt.
Aber wie muss ich dazu vorgehen?

Viele Grüße
Kay

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: TreeView-Komponente wird nicht registriert

Beitrag von Socke »

Kay hat geschrieben:Eine explizite Registrierung der Komponentenklasse hätte auch den Vorteil, dass der TreeView von Windows als solcher erkannt und behandelt wird. Momentan wird der TreeView nämlich nur als irgendein x-beliebiges (allgemeines) Steuerelement erkannt.
Wenn ich das richtig interpretiere, möchtest du ein Windows-eigenes Steuerelement für Bäume (TreeView) unter Lazarus nutzen?
Ich stecke jetzt nicht so tief in der LCL drinnen, aber ich denke die Vorgehensweise wäre wie folgt:
  • Allgemeine Widgetset-Klasse definieren (TWSMyTreeView)
  • Spezielle Widgetset-Klasse davon ableiten (TWin32WSMyTreeView)
  • LCL-Frontend-Klasse erstellen, die TWin32WSMyTreeView verwendet
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Kay
Beiträge: 134
Registriert: So 14. Nov 2010, 15:17

Re: TreeView-Komponente wird nicht registriert

Beitrag von Kay »

Hallo Socke,

vielen Dank für deine Antwort.
Die Vorgehensweise war mir allerdings soweit schon klar. Womit ich einige Probleme habe, das sind die Create- und Destroy-Handler. Was muss da genau rein? Welche Flags muss ich verwenden usw.?

Viele Grüße
Kay

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: TreeView-Komponente wird nicht registriert

Beitrag von Socke »

Kay hat geschrieben:Womit ich einige Probleme habe, das sind die Create- und Destroy-Handler. Was muss da genau rein? Welche Flags muss ich verwenden usw.?
Damit bin ich dann überfragt und kann nur auf Google und MSDN verweisen. Vielleicht kannst du aber auch ein paar Ideen aus der VCL (sofern sie dir zur Verfügung steht) klauen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: TreeView-Komponente wird nicht registriert

Beitrag von Christian »

Bitte kopier NIEMAND Code aus der VCL, das ist illegal und kann ziemlich heftige Folgen haben, siehe ReactOS.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten