親愛なるディディエ(私の同上のエゴ)は、ここに
は私がやったことです:
重要な注意:これはどのような私ですしかし、私はこれが最適な解決策であるとは確信していないので、新しいアイデアは歓迎すべきものです!
A.同じイベントハンドラ(たとえば、編集のOnChange)で。 TVirtualStringTreeノードのFont.Size
設定
VirtualStringTree1.Header.Font.Size := UpDown1.Position;
:
: VirtualStringTree1.Font.Size := UpDown1.Position;
はTVirtualStringTree Header
のHeight
設定
はTVirtualStringTree Header
のFont.Size
を設定します
VirtualStringTree1.Header.Height := Round(VirtualStringTree1.Header.Height * Delta);
は、列のWidth
TVirtualStringTree Header
の設定:B.は、TVirtualStringTreeのOnMeasureTextHeight
イベントハンドラで
for i := 0 to VirtualStringTree1.Header.Columns.Count -1 do
VirtualStringTree1.Header.Columns.Items[i].Width := Round(VirtualStringTree1.Header.Columns.Items[i].Width * Delta);
そのNodeHeight[Node]
プロパティを設定します。
Sender.NodeHeight[Node] := Round(Extent * 1.1);
C.はTVirtualStringTreeのセットオブジェクトのtoAutoChangeScale
をfalseにするインスペクタ。ここでは、オフトピック
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;
が、私は私の質問は、downvotedされた理由をモデレーターを依頼することがあります。
はすべて一緒に入れ、それを提供します。とにかく、それは私の将来の要求の関心を高めるのに役立つかもしれません。ありがとう –