![]() |
Re: Virtual Tree View und Mauscursor
Das sieht sehr gut aus, ich komme aber erst morgen wieder zum testen. Wobei dann noch die Frage offen bleibt, in welchem Ereignis man auf den Klick reagiert. Ich will ja den Link nur dann öffnen, wenn auf den Text in der Linkspalte geklickt wurde.
|
Re: Virtual Tree View und Mauscursor
Thomas, ich habe den Code aus meinem vorigen Beitrag ein wenig umgebaut und erweitert:
Delphi-Quellcode:
Gruß Hawkeye
const
LINKCOLUMN = 2; procedure TDemoForm.TreeDrawText(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; const Text: WideString; const CellRect: TRect; var DefaultDraw: Boolean); begin if IsHotNode(Node) then if (Column = LINKCOLUMN) and IsCursorInLinkColumn() then TargetCanvas.Font.Style := TargetCanvas.Font.Style + [fsUnderline] else TargetCanvas.Font.Style := TargetCanvas.Font.Style - [fsUnderline]; end; procedure TDemoForm.TreeMouseMove (Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if IsHotNode(Tree.GetNodeAt(X, Y)) and IsCursorInLinkColumn() then Tree.Cursor := crHandPoint else Tree.Cursor := crDefault; end; procedure TDemoForm.TreeClick (Sender: TObject); begin if IsHotNode(Tree.FocusedNode) and IsCursorInLinkColumn() then ShowMessage (Tree.Text[Tree.FocusedNode, LINKCOLUMN]); end; function TDemoForm.IsHotNode (aNode: PVirtualNode): Boolean; begin Result := (toHotTrack in Tree.TreeOptions.PaintOptions) and Assigned(aNode) and (aNode = Tree.HotNode); end; function TDemoForm.IsCursorInLinkColumn: Boolean; begin Result := (ColumnAtCursorPos() = LINKCOLUMN); end; function TDemoForm.ColumnAtCursorPos: TColumnIndex; var P: TPoint; begin P := Tree.ScreenToClient(Mouse.CursorPos); Result := Tree.Header.Columns.ColumnFromPosition(P); end; |
Re: Virtual Tree View und Mauscursor
Nabend zusammen.
Ich habe den Code von Hawkeye eben implementiert und er funktioniert exakt so wie er sollte. Vielen Dank für Zeit und Mühe :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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 by Thomas Breitkreuz