![]() |
Treeview einzelnes Treenode durchstreichen?
Hallo und guten Tag,
Ich habe einen Treeview mit mehreren dynamisch erzeugten Treenodes. Nun möchte ich den Text eines bestimmten Treenodes durchstreichen. Jemand eine Idee? Dank im Vorraus :gruebel: Schaedel |
Re: Treeview einzelnes Treenode durchstreichen?
Zitat:
meinste erste Idee ist, das Ereignis OnCustomDrawItem zu verwenden um in die Zeichnung der Nodes einzugreifen. Wenn das Node, was gerade gezeichnet werden soll eine bestimmte Markierung hat, (die du ihm gegeben hast, damit du weisst, welches durchgestrichen werden soll) dann kannst du ja selber die Zeichnung übernehmen. Ist das Node nicht gekennzeichnet, dann verwendest du die Standardzeichenroutine. Die Hilfe zu OnCustomDrawItem zeigt (in D7) ein Beispiel, wie man es verwenden kann. mfg Leonard |
Re: Treeview einzelnes Treenode durchstreichen?
Hallo,
die Idee hatte ich auch schon... Das Problem ist das TTreeNode keine Font eigenschaft besitzt. Lediglich das Treeview hat ne Eigenschaft Font... und das bezieht sich ja dann auf das Ganze. Über Canvas komm ich auch nicht ran... ist das selbe Problem. Trotzdem Danke Ps hab Delphi 5 Enterprise ;) |
Re: Treeview einzelnes Treenode durchstreichen?
Zitat:
Hier habe ich mal auf die ganz schnelle etwas probiert:
Delphi-Quellcode:
Setz dir mal einen TreeView auf ein Form und trag ein paar Knoten ein. Einigen gibst du den StateIndex 1. Dann fügst du die oben gezeigten Zeilen ein.
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean); var rTmp: TRect; begin inherited; if Assigned(Node) and (Node.StateIndex = 1) then begin rTmp := Node.DisplayRect(True); Sender.Canvas.MoveTo(rTmp.Left, (rTmp.Top + (rTmp.Bottom - rTmp.Top)) div 2); Sender.Canvas.LineTo(rTmp.Right, (rTmp.Top + (rTmp.Bottom - rTmp.Top)) div 2); end; end; Du kannst die Canvas Eigenschaft des TreeView verwenden. Da ich jetzt nicht weiss, ob ich den Hilfeartikel hier posten darf, schicke ich ihn dir mal nur als PM. (Ich hoffe das geht für die anderen in Ordnung, denn ich weiss man soll alles hier ins Forum schreiben). mfg Leonard P.S. ich sehe gerade, die Berechnung für die Y Werte bei MoveTo und LineTo passen nicht so richtig, aber es musste eben schnell gehen :zwinker: |
Re: Treeview einzelnes Treenode durchstreichen?
Es funktioniert.... ja ...
Ist nur Affen langsam.... ;) Da doch etwas viel Code ausgeführt wird... und er das seeehr oft ausführt. Sonst ist die Lösung ok ... wenn man nicht gerade viel anzeigen muss ;) Danke dir |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz