Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TreeView: Knoten und deren Unterpunkte farbig gliedern...


Terra23 - Fr 25.09.09 23:50
Titel: TreeView: Knoten und deren Unterpunkte farbig gliedern...
Hi!

Die Suche brachte mir leider keine Ergebnisse, daher mal meine Frage:

Ich habe ein TreeView. Dieses besitzt 3 Knoten und jeder Knoten hat unterschiedlich viele Unterpunkte.

Nun möchte ich gern, dass z.B. der erste Knoten mit allen Unterpunkten orange wird, der zweit grün und der dritte lila.

Kann ich das irgendwie bewerkstelligen?

Leider bin ich im Moment auf der Arbeit (Nachtschicht) und habe daher kein Delphi. Ansonsten hätte ich selbst ein wenig herumexperimentiert.

Gruß,

Terra


Tryer - Sa 26.09.09 01:21

Geht z.B. in OnCustomDrawItem:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  n: TTreeNode;
begin
  n := Node;
  while n.Parent <> nil do
    n := n.Parent;
  case n.Index of
    0: Sender.Canvas.Font.Color := $000080FF;
    ...
  end;
end;


Grüsse, Dirk


Terra23 - Sa 26.09.09 14:56

user profile iconTryer hat folgendes geschrieben Zum zitierten Posting springen:
Geht z.B. in OnCustomDrawItem:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
  n: TTreeNode;
begin
  [b]n := Node;[/b]
  while n.Parent <> nil do
    n := n.Parent;
  case n.Index of
    0: Sender.Canvas.Font.Color := $000080FF;
    ...
  end;
end;


Grüsse, Dirk


An der fett markierten Stelle kriege ich ne Fehlermeldung: "Undefinierter Bezeichner: 'Node'". Was ist da zu tun?

Ich kann mir das leider weder allein noch mit der Delphi-Hilfe herleiten...


Tryer - Sa 26.09.09 16:25

Wie ist den bei Deiner Delphiversion der CustomDrawItem - Event deklariert?


Terra23 - Sa 26.09.09 18:05

Sorry, mein Fehler. Habe das Ereignis CustomDraw genommen statt CustomDrawItem.

Gruß,

Terra


Terra23 - Sa 26.09.09 18:13

Was mir aber noch eingefallen ist:

Wenn ich einen Eintrag auswähle, würde ich gern die Farbe des Items schwarz färben. Kann ich das auch irgendwie bewerkstelligen?

Terra


Tryer - Sa 26.09.09 18:18

Gibt´s da nicht sowas wie "State: TDrawState" oder so?

Delphi-Quelltext
1:
2:
3:
4:
case State of 
  odSelected:... //schwarz
else
  ... //orange oder so

Das sollte die Hilfe zum Event eigentlich hergeben, bin gerade zu faul nachzusehen ;)