Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TreeView: Item komplett markieren? (https://www.delphipraxis.net/51143-treeview-item-komplett-markieren.html)

Pseudemys Nelsoni 6. Aug 2005 22:43


TreeView: Item komplett markieren?
 
Moin,

ich habe eine Frage und zwar, wie kann ich ein Item eines treeviews komplett, d.h nicht nur die schrift selektieren?

So wie da: http://www.nnscript.com/40teaser/new6/new5.png

?

tigerman33 7. Aug 2005 08:40

Re: TreeView: Item komplett markieren?
 
Kann es im Moment nicht abchecken, aber hat TTreeView nicht wie TListView die Möglichkeit, mit OwnerDraw selbst das Zeichnen der Einträge zu übernehmen?
Dann könntest du ja über den Canvas des TreeViews einfach ein FillRect machen. :coder:

Pseudemys Nelsoni 7. Aug 2005 10:05

Re: TreeView: Item komplett markieren?
 
Moin,

ne hat sie nicht, ich hab sowas mit Zeichnen noch nie gemacht :oops: . Hoffe jemand kann mir erklären wie idch da mit Canvas(?) male

xaromz 7. Aug 2005 10:14

Re: TreeView: Item komplett markieren?
 
Hallo,

OnCustomDrawItem scheint mir der richtige Ansatz zu sein.

Gruß
xaromz

Sharky 7. Aug 2005 10:19

Re: TreeView: Item komplett markieren?
 
Das Problem wird sicher sein das dann auch das "Stateimage [+]" überzeichnet wird. (zummindest ist es bei mir so).

xaromz 7. Aug 2005 10:58

Re: TreeView: Item komplett markieren?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

also hiermit gehts:
Delphi-Quellcode:
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  NodeRect: TRect;
begin
  NodeRect := Node.DisplayRect(False);
  if cdsSelected in State then
    Sender.Canvas.Brush.Color := clLime
  else
    Sender.Canvas.Brush.Color := TTreeView(Sender).Color;

  Sender.Canvas.FillRect(NodeRect);

  DefaultDraw := True;
end;
Das einzige Problem: Sobald man auf das Handle des Canvas zugreift (z. B. über FillRect) wird die Schrift verstellt :gruebel: , aber nur bei nicht markierten Nodes. Keine Ahnung warum oder wie man das verhindert. Siehe dazu das Bild.

Gruß
xaromz

Sharky 7. Aug 2005 11:07

Re: TreeView: Item komplett markieren?
 
Liste der Anhänge anzeigen (Anzahl: 4)
Hai xaromz,

so hatte ich es auch versucht. Dabei ist aber das wie im Anhang rausgekommen. (Bild2 und Bild3).

Darum habe ich es etwas "koplizierter" gemacht. Es sieht dann so aus wie Bild1.

Edit: Habe das Projekt vergessen :oops:

Pseudemys Nelsoni 7. Aug 2005 11:23

Re: TreeView: Item komplett markieren?
 
Moin,

danke euch Zwei. Ich würde gerne das Beispiel von xaromz verwenden (weil keine Extragrafiken), nur stört mich das mit dem Font schon, ich wollte Tahoma? <g> Kann man das irgendwie noch hinkriegen?

xaromz 7. Aug 2005 11:29

Re: TreeView: Item komplett markieren?
 
Hallo,

was das mit dem Font soll weiss ich leider auch nicht. Ich tippe auf nen Bug.

@Sharky: Die Unterschiede gibt's wohl, weil ich Delphi 7 verwende und Du Delphi 2005.

Gruß
xaromz

Pseudemys Nelsoni 7. Aug 2005 11:49

Re: TreeView: Item komplett markieren?
 
Hm, das ist ja doof :( Borland halt....


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 Uhr.
Seite 1 von 3  1 23      

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