gpt4 book ai didi

delphi - 我想要一些有关在高分辨率屏幕上调整工具栏大小的指导

转载 作者:行者123 更新时间:2023-12-03 04:40:46 24 4
gpt4 key购买 nike

我想在运行时更改工具栏的大小并适应不同的屏幕分辨率。

我的工具栏位于 TControlBar 上,工具栏和 ControlBar 设置为自动调整大小。我有 4 个不同大小的 TImagelists 16*16 到 48*48,我可以将它们分配给工具栏。我发现,当我分配较大的图像列表时,控制栏和工具栏的高度会增加,但当我选择较小的图像列表时,控制栏和工具栏的高度不会缩小。我还发现工具栏的长度不会扩展以容纳更宽的图像。这是预期的行为吗?

我还发现在设计时我最大的图像列表 48*48 实际上已经加载了 32*32 图像。所有图像均来自一组图标,其中包含从 64*64、48*48 ... 到 16*16 的图像。图像列表可以存储的图像大小是否有限制。每个图像列表包含 36 个图像。

procedure TfmIDEMain.SetIconSize(Large: Boolean);
begin
if Large then
case screen.PixelsPerInch of
96..111: ilTBIcons := ilMedIcons; // Large Icons - Low res
112..120: ilTBIcons := ilLargeIcons; // Large Icons - Hi Med
121..144: ilTBIcons := ilExLargeIcons; // Large Icons - hi res
end
else
case screen.PixelsPerInch of
96..111: ilTBIcons := ilSmallIcons; // Small Icons - Low res
112..120: ilTBIcons := ilMedIcons; // Small Icons - Med res
121..144: ilTBIcons := ilLargeIcons; // Small Icons - hi res
end;

tbFiles.Images := ilTBIcons;
tbEdit.Images := ilTBIcons;
tbBookmarks.Images := ilTBIcons;
tbCodeFolding.Images := ilTBIcons;
end;

上面的例程根据屏幕分辨率和“Large” bool 值分配图像。我还应该做些什么才能将工具栏和控制栏调整为小图像尺寸?

最佳答案

正如您已经发现的那样,工具栏控制栏会自行调整为图像列表尺寸(如果它们还不适合)。这就是为什么当分配较小的图像列表时它们不会缩小。当您通过将其设置为 FalseTrue 来触发 AutoSize 时,即使是工具栏也应该调整其宽度。 p>

图像列表大小的这种 react 会对ScaleBy功能产生影响,该功能在控件对 DPI 变化使用react时使用。分配较大的图像列表将放大工具栏,并且以下ScaleBy将使用错误的基本尺寸。相反,当 DPI 降低时,只要仍然分配较大的图像列表工具栏就无法相应地减小其大小。

这需要以正确的顺序分配图像列表:

  • 将控件缩放到更大尺寸后,必须分配更大的图像列表
  • 在将控件缩放到较小尺寸之前,必须分配较小的图像列表

关于delphi - 我想要一些有关在高分辨率屏幕上调整工具栏大小的指导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719647/

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