Autor Beitrag
7StarMantis
Hält's aus hier
Beiträge: 5

Win XP Pro

BeitragVerfasst: Mi 19.07.06 11:06 
Moin Moin,

ich würde gerne ein einem TreeView bestimmte Einträge hervorheben, z.B. durch fette Schrift, oder so. Ist das möglich? Ich hab noch nichts gefunden...

MfG
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Mi 19.07.06 12:10 
Auf die Schnelle fällt mir da nur das Ereignis OnCustomDrawItemein und dann selber malen auf dem Canvasdes Trees. Vielleicht wären da andere Icons mit dem Item.SelectedIndex die bessere Wahl?
7StarMantis Threadstarter
Hält's aus hier
Beiträge: 5

Win XP Pro

BeitragVerfasst: Mi 19.07.06 12:15 
Ich hab glaub ich gerade was besseres gefunden:
TreeView.Font.Style := [fsBold];

Muss aber grade noch mal testen...

Aber danke für den Tipp. Ich glaube das geht auch mit anderen Icons. Mal sehen...
7StarMantis Threadstarter
Hält's aus hier
Beiträge: 5

Win XP Pro

BeitragVerfasst: Mi 19.07.06 12:36 
Hmmm, es scheint nicht zu funktionieren... komisch :)

Im moment sieht es so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
if "SollEintragFett" then
begin
treeview.font.style := [bold];
addnode;
treeview.font.style := [];
end
else
addnode;


BTW: Wie kann ich hier Delphicode in diesem Kasten angeben?

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Mi 19.07.06 12:47 
Hallo!

Ich glaube mit Font.Style änderst du den kompletten Font Style der TreeView...
Also musst du warscheinlich doch OnCustomDrawItem benutzen.

Delphi Codes kannst du mit [delphi]Hier dein Code[/delphi] angeben ;)

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mi 19.07.06 12:58 
Hallo,

OnCustomDrawItem oder >>

Damit kann man einzelne Einträge auf Bold setzen:

:!: commctrl in uses einbinden :!:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure SetNodeBoldState(Node: TTreeNode; Value: Boolean);
var
  TVItem: TTVItem;
begin
  if not Assigned(Node) then
  Exit;
  with TVItem do
    begin
    mask := TVIF_STATE or TVIF_HANDLE;
    hItem := Node.ItemId;
    stateMask := TVIS_BOLD;
    if Value then
      state := TVIS_BOLD
      else
        state := 0;
    TreeView_SetItem(Node.Handle, TVItem);
    end;
end;

//Selektierten Node auf Bold setzen
  SetNodeBoldState(TreeView1.Selected,True);
//Bold aufheben
  SetNodeBoldState(TreeView1.Selected,False);

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
7StarMantis Threadstarter
Hält's aus hier
Beiträge: 5

Win XP Pro

BeitragVerfasst: Mi 19.07.06 13:03 
user profile iconBorn-to-Frag hat folgendes geschrieben:

Ich glaube mit Font.Style änderst du den kompletten Font Style der TreeView...

Richtig :D
user profile iconBorn-to-Frag hat folgendes geschrieben:

Delphi Codes kannst du mit [delphi]Hier dein Code[/delphi] angeben ;)

Danke

Ich werde mal dem Vorschlag von user profile iconLannes nachgehen...
7StarMantis Threadstarter
Hält's aus hier
Beiträge: 5

Win XP Pro

BeitragVerfasst: Mi 19.07.06 13:48 
Vielen Dank!
Das SetNodeBoldState hat gefunzt :) *freu*

Man sollte wirklich dabei beachten die Unit "CommCtrl" in die uses-Klausel einzufügen, und diese nicht mit "ComCtrls" verwechseln ;)