![]() |
VirtualTreeview wie kriege ich links den Zeilen-Indikator?
Hi,
also ich suche jetzt schon den halben Tag - und gebe auf... In der Advanced Demo gibt es z.B. in der GeneralAbilitiesDemo einen VST, der links einen Zeilen-Indikator nutzt. In den z.B. PropertiesDemo ist der nicht vorhanden. Ich würde den gern bei einem eigenen Projekt nutzen. Ich verwende dort den VST als StringGrid und da wäre dieser Indikator fein. Ich habe die Einstellungen der beiden VSTs verglichen, aber ich finde die Einstellung nicht, die diese Anzeige bewirkt. Bin das mehrmals durchgegangen, aber ich sehe es nicht. Im z.B. TDBGrid gibt es die Option dgIndicator - da lag es für mich nahe, auch im VST nach etwas Ähnlichem zusuchen...aber auch in der Source und im VT.pdf habe ich nichts dergleichen gefunden (gesucht nach z.B. indicator). Im Header oder den Header.Columns oder den Selection- oder PaintOptions...ich sehe es nicht. Und eigentlich habe ich dort sämtliche Options mal hin und her geschaltet...passiert nix... Was übersehe ich? Weiß jemand, was ich einstellen müsste? Jeder Tipp ist herzlich willkommen! |
AW: VirtualTreeview wie kriege ich links den Zeilen-Indikator?
...da gibt es keine Einstellung...das wird nur simuliert...nachdem ich jetzt den Code der GeneralAbilitiesDemo verstanden habe, ist mir das klar geworden...
Also Kommando zurück...hat mich aber trotzdem fast den ganzen Tag gekostet... Allen ein schönes Wochenende! |
AW: VirtualTreeview wie kriege ich links den Zeilen-Indikator?
Zitat:
|
AW: VirtualTreeview wie kriege ich links den Zeilen-Indikator?
Das ist natürlich schön, dass Du die Lösung gefunden hast :P Allerdings wäre es für den nächsten mit Sicherheit hilfreich zu wissen wo in der Demo das gesetzt wird.
In der von Dir genannten Demo findet sich das setzen des "Indikators" in der Methode TGeneralForm.VST2GetImageIndexEx:
Delphi-Quellcode:
Und ja, die erste Spalte im Header ist die Spalte mit dem Index "1" (die mit dem Zeilenindikator) und die zweite Spalte (main column) ist die mit dem Index "0" :wall:
procedure TGeneralForm.VST2GetImageIndexEx(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind;
Column: TColumnIndex; var Ghosted: Boolean; var ImageIndex: Integer; var ImageList: TCustomImageList); var Data: PNodeData2; begin // For this demo only the normal image is shown, you can easily // change this for the state and overlay images. case Kind of ikNormal, ikSelected: begin Data := Sender.GetNodeData(Node); Ghosted := Node.Index = 1; case Column of -1, // general case 0: // main column ImageIndex := Data.Level + 7; 1: // image only column if Sender.FocusedNode = Node then ImageIndex := 6; end; end; ikOverlay: begin // Enable this code to show an arbitrary overlay for each image. // Note the high overlay index. Standard overlays only go up to 15. // Virtual Treeview allows for any number. // ImageList := ImageList1; // ImageIndex := 58; end; end; end; |
AW: VirtualTreeview wie kriege ich links den Zeilen-Indikator?
... oder ganz einfach so:
Code:
procedure TfrmXYZ.vstListeAfterCellPaint(Sender : TBaseVirtualTree; TargetCanvas : TCanvas;
Node : PVirtualNode; Column : TColumnIndex; CellRect : TRect); const space = 6; begin if (Column = 0) and (Node = Sender.FocusedNode) then with TargetCanvas do begin Brush.Color := clGreen; Pen.Color := clBlack; Polygon([Point(CellRect.Left + space, CellRect.Top + space), Point(CellRect.Left + 2 * space, (CellRect.Top - (CellRect.Top - CellRect.Bottom) div 2)), Point(CellRect.Left + space, CellRect.Bottom - space)]); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:15 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