Einzelnen Beitrag anzeigen

Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: In der Lüneburger Heide
165 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: VST Zeile einfärben bei DBClick

  Alt 3. Sep 2010, 12:28
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.
Carsten
  Mit Zitat antworten Zitat