gpt4 book ai didi

delphi - TVirtualStringTree ScaleBy Stretch

转载 作者:行者123 更新时间:2023-12-03 17:44:17 27 4
gpt4 key购买 nike

我试图让 VST 在其高度和宽度发生变化时自动调整大小。
我对其他放置的 VCL 组件没有这个问题,其中一些具有像 TImage 这样的属性“Stretch”,可以让它们自动调整。 VST 保持固执并保持 nodeHeights 和 Column 宽度。

  • 我见过 Header->hoAutoResize,hoColumnResize。在这件事上, AutoSizeIndex <> -1 不是那么有用,因为我需要每一列都按比例缩小。我认为这就是为什么这些不做任何事情的原因。将 AutoSizeIndex 更改为我的最后一列(3,因为我有 4 列)并且 hoAutoResize = True;仍然不会影响我的列宽。 hoColumnResize 是允许用户调整列大小的设置,所以没有运气
  • 我见过 TreeOptions->AutoOptions->toAutoChangeScale 和 toAutoSpanColumns。我发现 toAutoSpanColumns 在我的情况下会适得其反,所以它被关闭了。我的字体大小正在调整。
  • 我找到了 Tree.Scaleby,但我不能让它对我有利,而且它在我拥有的官方 .pdf 文档中没有记录。
  • 所有 4 列的 minWidth 都是 10,所以没有问题
  • 所有 4 个都有 coEnabled、coVisible、coResizable := True 和 coFixed、coSmartResize := False fwiw

  • 我想我只是打错了设置或其他东西的组合。
    任何提示都会很棒,谢谢。

    最佳答案

    从您的帖子中,我了解到您希望在 TVirtualStringTree 时按比例自动调整所有列的宽度。宽度变化。如果您希望行高也发生这种情况,您可以相应地应用以下内容。

    属性列宽没有设置,但在OnResize 中很容易实现TVirtualStringTree 的事件:

    procedure TForm1.VSTResize(Sender: TObject);
    begin
    VST.Header.Columns[0].Width := MulDiv(VST.Width, 50, 100);
    VST.Header.Columns[1].Width := MulDiv(VST.Width, 30, 100);
    VST.Header.Columns[2].Width := MulDiv(VST.Width, 20, 100);
    end;

    在上面,列保持为组件宽度的 50%、30% 和 20%。

    关于delphi - TVirtualStringTree ScaleBy Stretch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43612704/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com