Delphi-PRAXiS

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/)
-   -   VST Zeile einfärben bei DBClick (https://www.delphipraxis.net/154257-vst-zeile-einfaerben-bei-dbclick.html)

youuu 3. Sep 2010 10:19

VST Zeile einfärben bei DBClick
 
Hi,

ich würde gerne bei einen Doppelklick auf eine Zeile, genau diese einfärben, nur wie?

Delphi-Quellcode:
procedure Tfrm.VstDblClick(Sender: TObject);
Besitzt nicht die Parameter für
Delphi-Quellcode:
TargetCanvas.Font.Color := clGreen

ToFaceTeKilla 3. Sep 2010 10:48

AW: VST Zeile einfärben bei DBClick
 
Ich würde jetzt spontan sagen, manipulier beim Doppelclick die Daten des Nodes und frage den entsprechenden Wert dann im BeforeCellPaint ab.
So mach ich das immer.

youuu 3. Sep 2010 11:10

AW: VST Zeile einfärben bei DBClick
 
Wie meinst du das mit manipulieren?

DelphiBandit 3. Sep 2010 11:28

AW: VST Zeile einfärben bei DBClick
 
In den meisten Fällen hast Du doch ein Objekt im Hintergrund liegen, aus dem z.B. der Anzeigetext bezogen wird. Erweitere das Objekt um eine Eigenschaft "IsDblClicked" und setze diese für die aktuelle Node (FocusedNode) im DblClick auf True.

Im DrawText kannst Du diese aus dem dahinterliegenden Objekt dann auswerten und die Farbe entsprechend anpassen, dort gibt es einen manipulierbaren Canvas.
Delphi-Quellcode:
procedure TfMain.vtDblClick(Sender: TObject);
var daten: TMyObject;
    aktnode: : PVirtualNode;
begin
  aktnode := vt.FocusedNode;
  daten := TMyObject(vt.GetNodeData(aktnode)^);
  daten.IsDblClicked := True;
end;
..
// 
procedure TfMain.vtDrawText(Sender: TBaseVirtualTree; TargetCanvas: TCanvas;
  Node: PVirtualNode; Column: TColumnIndex; const Text: WideString;
  const CellRect: TRect; var DefaultDraw: Boolean);
var daten: TMyObject;
begin
  daten := TMyObject(vt.GetNodeData(Node)^);
  if assigned(daten) and (TMyObject(daten).IsDblClicked) then
    TargetCanvas.Font.Color := clGreen;
end;
... so hab ich es verstanden. Code ungetestet, aber so ungefähr würde ich es auch machen :) Kämpfe mich nämlich gerade auch durch die Tiefen des Virtual Treeview bzgl. Drag&Drop usw.

youuu 3. Sep 2010 11:38

AW: VST Zeile einfärben bei DBClick
 
Ah nun versteh ich, Danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 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