Delphi。火猴。列表框。滚动条可见吗?
Delphi. Firemonkey. TListbox. Is scrollbar visible?
我想根据 ListBox 项目数调整表单高度 - 在滚动条可见时增加高度。
如何知道滚动条在 TListbox 中是否可见?
因此,有大量关于 VCL(基于 Handle)的信息,但没有关于 FMX 的信息。
惰性方法:
ListBox1.Items.Count * Round(ListBox1.ItemByIndex(0).Height)
此方法无法正常工作,因为不同机器上的表单边框和标题可能不同。
要调整表单的高度或宽度以容纳某些内容,您应该使用表单的 ClientWidth
和 ClientHeight
属性,而不是 Width
和 Height
ClientWidth
和 ClientHeight
保存没有边框、标题和菜单区域的表单尺寸。
如果父控件的客户端宽度与其宽度相同,则垂直滚动条不可见。您可以通过检查样式来确定滚动条的大小。例如:
if (VertScrollBox1.ClientWidth = VertScrollBox1.Width) then
VerticalScrollBarVisible := False;
VerticalScrollBarWidth := 0;
else
begin
VerticalScrollBarVisible := True;
VerticalScrollBarWidth := VertScrollBox1.StylesData['vscrollbar.width'].AsExtended;
end;
我想根据 ListBox 项目数调整表单高度 - 在滚动条可见时增加高度。 如何知道滚动条在 TListbox 中是否可见? 因此,有大量关于 VCL(基于 Handle)的信息,但没有关于 FMX 的信息。 惰性方法:
ListBox1.Items.Count * Round(ListBox1.ItemByIndex(0).Height)
此方法无法正常工作,因为不同机器上的表单边框和标题可能不同。
要调整表单的高度或宽度以容纳某些内容,您应该使用表单的 ClientWidth
和 ClientHeight
属性,而不是 Width
和 Height
ClientWidth
和 ClientHeight
保存没有边框、标题和菜单区域的表单尺寸。
如果父控件的客户端宽度与其宽度相同,则垂直滚动条不可见。您可以通过检查样式来确定滚动条的大小。例如:
if (VertScrollBox1.ClientWidth = VertScrollBox1.Width) then
VerticalScrollBarVisible := False;
VerticalScrollBarWidth := 0;
else
begin
VerticalScrollBarVisible := True;
VerticalScrollBarWidth := VertScrollBox1.StylesData['vscrollbar.width'].AsExtended;
end;