Lieber Didier (mein idem Ego),
hier ist das, was ich getan habe:
Wichtiger Hinweis: das ist, was ich tat, aber ich bin mir nicht sicher, dass dies die optimale Lösung ist, daher sind neue Ideen mehr als willkommen !!
A. In einem Ereignis Handler (zB Edit OnChange).
setzte die Font.Size
der TVirtualStringTree Header
:
VirtualStringTree1.Header.Font.Size := UpDown1.Position;
die Font.Size
des TVirtualStringTree Knoten gesetzt:
VirtualStringTree1.Font.Size := UpDown1.Position;
eingestellt die Height
der TVirtualStringTree Header
:
VirtualStringTree1.Header.Height := Round(VirtualStringTree1.Header.Height * Delta);
setzen die Spalte Width
des TVirtualStringTree Header
:
for i := 0 to VirtualStringTree1.Header.Columns.Count -1 do
VirtualStringTree1.Header.Columns.Items[i].Width := Round(VirtualStringTree1.Header.Columns.Items[i].Width * Delta);
B. Auf TVirtualStringTree des OnMeasureTextHeight
Event Handler, setzen Sie seine NodeHeight[Node]
Eigenschaft:
Sender.NodeHeight[Node] := Round(Extent * 1.1);
C eingestellt TVirtualStringTree des toAutoChangeScale
auf falsch im Objekt Inspektor.
Alle zusammen, es gibt:
procedure TForm1.Edit3Change(Sender: TObject);
var
Delta: Double;
i: byte;
begin
Delta := UpDown1.Position/VirtualStringTree1.Font.Size;
VirtualStringTree1.BeginUpdate();
try
VirtualStringTree1.Font.Size := UpDown1.Position;
VirtualStringTree1.Header.Font.Size := UpDown1.Position;
VirtualStringTree1.Header.Height := Round(VirtualStringTree1.Header.Height * Delta);
for i := 0 to VirtualStringTree1.Header.Columns.Count -1 do
VirtualStringTree1.Header.Columns.Items[i].Width := Round(VirtualStringTree1.Header.Columns.Items[i].Width * Delta);
finally
VirtualStringTree1.EndUpdate();
end;
end;
procedure TForm1.VirtualStringTree1MeasureTextHeight(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
const Text: string; var Extent: Integer);
begin
Sender.NodeHeight[Node] := Round(Extent * 1.1);
end;
Wegthema hier, aber wenn ich fragen darf den Moderator, warum meine Frage Downvoted wurde. Wie auch immer, es könnte helfen, das Interesse meiner zukünftigen Anfragen zu verbessern. Vielen Dank –