![]() |
VirtualStringTree - Fontgrösse hochdrehen
Hallo!
Ich hab hier eine kleine App in der Daten (=Text) in einem Grid (=ein VirtualTreeView) dargestellt werden. Ich möchte nun dem Benutzer die Möglichkeit geben, den Font für das Grid einzustellen - primär weil auf machen High-Res-Bildschirmen der Font doch recht winzig wird. Wenn ich nun einfach mit VST.Font.Assign(FontDialog1.Font); den neuen Font zuweise, dann wird der Text grösser in die unverändert kleinen Zellen gemalt - eher unschön :) Ich hab also versucht dann VST.DefaultNodeHeight hochzudehen. Das macht erstmal auch nichts vernünftiges, wenn ich allerdings durch das Grid scrolle von unten nach oben scrolle, dann werden die Zellen bei denen ich gerade war schön gross und bleiben das auch. Scrolle ich allerdings wieder nach unten werden wieder alle besuchten Zellen klein. Misteriös. Wie ist da die richtige Vorgehensweise? Danke, Ralf |
AW: VirtualStringTree - Fontgrösse hochdrehen
Guten Morgen,
versuch mal folgendes:
Delphi-Quellcode:
dann implementierst Du das OnMeasureItem:
VST.Font.Assign(FontDialog1.Font);
VST.Invalidate;
Delphi-Quellcode:
das sollte eigentlich funktionieren...
TargetCanvas.Font := Sender.Font;
NodeHeight := vstProtokoll.ComputeNodeHeight(TargetCanvas, Node, 3); GRüße |
AW: VirtualStringTree - Fontgrösse hochdrehen
Zitat:
OnMeasureItem wird beim erstmaligen Aufbau das Grids aufgerufen, nicht aber wenn ich die Fontgrösse verändere und auch nicht bei Invalidate. |
AW: VirtualStringTree - Fontgrösse hochdrehen
Hallo,
dann setze in den TreeOptions.MiscOptions entweder toNodeHeighResize oder toVariableNodeHeight oder beide zusammen. |
AW: VirtualStringTree - Fontgrösse hochdrehen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Im Anhang eine kleine Applikation. Einfach starten, einen grösseren Font auswählen und ... es schlägt fehl :( |
AW: VirtualStringTree - Fontgrösse hochdrehen
Hallo,
ich kann das Verhalten, aufgrund Deines Beispiels, nachvollziehen. Was mich wundert ist, dass totz Invalidate das Ereignis OnMeasureItem nicht mehr aufgerufen wird. Ich vermute einmal das könnte ein Bug im VST sein. Am besten Du postest Dein Problem auf der ![]() |
AW: VirtualStringTree - Fontgrösse hochdrehen
|
AW: VirtualStringTree - Fontgrösse hochdrehen
Beim verträumten Durchlesen vom VirtualTreeView Quellcode über die Lösung gestolpert. Man muss die Nodes als "noch nicht Höhenvermessen" markieren:
Delphi-Quellcode:
procedure TForm1.butNewFontClick(Sender: TObject);
var Node : PVirtualNode; begin if FontDialog1.Execute then begin VST.Font.Assign(FontDialog1.Font); Node:=VST.GetFirst; while Node<>nil do begin exclude(Node.States, vsHeightMeasured); Node:=VST.GetNext(Node) end; VST.Invalidate; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14: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