AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Treeview einzelnes Treenode durchstreichen?
Thema durchsuchen
Ansicht
Themen-Optionen

Treeview einzelnes Treenode durchstreichen?

Ein Thema von Schaedel · begonnen am 22. Aug 2006 · letzter Beitrag vom 22. Aug 2006
Antwort Antwort
Benutzerbild von Schaedel
Schaedel

Registriert seit: 5. Jan 2006
Ort: Saarland
174 Beiträge
 
Delphi 2007 Professional
 
#1

Treeview einzelnes Treenode durchstreichen?

  Alt 22. Aug 2006, 13:38
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

Schaedel
Michael S.
  Mit Zitat antworten Zitat
Leonard

Registriert seit: 12. Okt 2005
Ort: Lutherstadt Eisleben
64 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Treeview einzelnes Treenode durchstreichen?

  Alt 22. Aug 2006, 14:08
Zitat von Schaedel:
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

Schaedel
Hallo,

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
Tobias
  Mit Zitat antworten Zitat
Benutzerbild von Schaedel
Schaedel

Registriert seit: 5. Jan 2006
Ort: Saarland
174 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Treeview einzelnes Treenode durchstreichen?

  Alt 22. Aug 2006, 14:18
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
Michael S.
  Mit Zitat antworten Zitat
Leonard

Registriert seit: 12. Okt 2005
Ort: Lutherstadt Eisleben
64 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Treeview einzelnes Treenode durchstreichen?

  Alt 22. Aug 2006, 14:32
Zitat von Schaedel:
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
Das geht...

Hier habe ich mal auf die ganz schnelle etwas probiert:
Delphi-Quellcode:
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;
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.

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
Tobias
  Mit Zitat antworten Zitat
Benutzerbild von Schaedel
Schaedel

Registriert seit: 5. Jan 2006
Ort: Saarland
174 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Treeview einzelnes Treenode durchstreichen?

  Alt 22. Aug 2006, 15:40
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
Michael S.
  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 09:50 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