AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

VST Zeile einfärben bei DBClick

Ein Thema von youuu · begonnen am 3. Sep 2010 · letzter Beitrag vom 3. Sep 2010
Antwort Antwort
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

VST Zeile einfärben bei DBClick

  Alt 3. Sep 2010, 11:19
Hi,

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

procedure Tfrm.VstDblClick(Sender: TObject); Besitzt nicht die Parameter für TargetCanvas.Font.Color := clGreen
Steven
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#2

AW: VST Zeile einfärben bei DBClick

  Alt 3. Sep 2010, 11:48
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.
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#3

AW: VST Zeile einfärben bei DBClick

  Alt 3. Sep 2010, 12:10
Wie meinst du das mit manipulieren?
Steven
  Mit Zitat antworten Zitat
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
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#5

AW: VST Zeile einfärben bei DBClick

  Alt 3. Sep 2010, 12:38
Ah nun versteh ich, Danke
Steven
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 Uhr.
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