我把一个VirtualStringTree(VST1)Form 1上,并在其中添加了一些数据。不管节点数量的垂直滚动条是可见的,我没有做有关节点高度的默认属性什么。然后我复制VST1到窗体2,并将其命名为VST2和VST2的有滚动条是不再可见。我改变VST2的parent
控制和align
财产(我测试过很多次,不记得改变对齐和其父属性的顺序),我不知道如何在最后的滚动条显示。然后我复制到VST2 form3并将其命名为VST3。而现在,无论我怎么测试,它的垂直滚动条时不能在VST3数据超出了其窗口视图中看到。
有VST太多的性能,我应该设置什么样的属性?
编辑:
// vt is on form1, scrollbaroption.alwaysvisible:=false;
// and vt can show vertical scrollbar,
object vt: TVirtualStringTree
Left = 1
Top = 1
Width = 353
Height = 301
Hint = 'Click header to sort'
Align = alClient
Header.AutoSizeIndex = 0
Header.DefaultHeight = 17
Header.Font.Charset = DEFAULT_CHARSET
Header.Font.Color = clWindowText
Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif'
Header.Font.Style = []
Header.Options = [hoColumnResize, hoDrag, hoShowSortGlyphs, hoVisible]
Indent = 3
ParentShowHint = False
ShowHint = True
TabOrder = 3
TreeOptions.MiscOptions = [toAcceptOLEDrop, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning]
TreeOptions.PaintOptions = [toShowRoot, toThemeAware, toUseBlendedImages]
TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect, toRightClickSelect]
OnChange = vtChange
OnCompareNodes = vtCompareNodes
OnFocusChanged = vtFocusChanged
OnFreeNode = vtFreeNode
OnGetText = vtGetText
OnGetNodeDataSize = vtGetNodeDataSize
OnHeaderClick = vtHeaderClick
OnLoadNode = vtLoadNode
OnSaveNode = vtSaveNode
Columns = <
item
Position = 0
Width = 168
WideText = 'Type'
end
item
Position = 1
Width = 80
WideText = 'Frequency'
end
item
Position = 2
Width = 80
WideText = 'Percent'
end
item
CheckBox = True
Position = 3
Width = 80
WideText = 'Rank'
end
item
Position = 4
Width = 80
WideText = 'Length'
end
item
Position = 5
WideText = 'Syllables'
end
item
Position = 6
end>
end
end
//tfvt is on form2, scrollbaroption.alwaysvisible:=true;
// I tested both scrollbaroption.alwaysvisible:=true and false
// yesterday it showed scrollbar, today it does not.
// tfvt does not show vertical scrollbar.
object tfvt: TVirtualStringTree
Left = 1
Top = 138
Width = 737
Height = 227
Hint = 'Click header to sort'
Align = alClient
Header.AutoSizeIndex = 0
Header.DefaultHeight = 17
Header.Font.Charset = DEFAULT_CHARSET
Header.Font.Color = clWindowText
Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif'
Header.Font.Style = []
Header.Options = [hoColumnResize, hoDrag, hoShowSortGlyphs, hoVisible]
Indent = 3
ParentShowHint = False
ScrollBarOptions.AlwaysVisible = True
ShowHint = True
TabOrder = 2
TreeOptions.MiscOptions = [toAcceptOLEDrop, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning]
TreeOptions.PaintOptions = [toShowRoot, toThemeAware, toUseBlendedImages]
TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect, toRightClickSelect]
OnChange = tfvtChange
OnCompareNodes = tfvtCompareNodes
OnFocusChanged = tfvtFocusChanged
OnFocusChanging = tfvtFocusChanging
OnFreeNode = tfvtFreeNode
OnGetText = tfvtGetText
OnGetNodeDataSize = tfvtGetNodeDataSize
OnHeaderClick = tfvtHeaderClick
OnLoadNode = tfvtLoadNode
OnSaveNode = tfvtSaveNode
Columns = <
item
Position = 0
Width = 80
end
item
Position = 1
Width = 80
end
item
Position = 2
Width = 80
end
item
CheckBox = True
Position = 3
Width = 80
end
item
Position = 4
Width = 80
end
item
Position = 5
Width = 80
end
item
Position = 6
Width = 80
end>
end
end
end
end
// kwicvt is on form3, scrollbaroption.alwaysvisible:=true;
// I tested both scrollbaroption.alwaysvisible:=true and false
// Now kwicvt does not show vertical scrollbar.
//
object kwicvt: TVirtualStringTree
Left = 32
Top = 24
Width = 433
Height = 317
Hint = 'Click header to sort'
Header.AutoSizeIndex = 0
Header.DefaultHeight = 17
Header.Font.Charset = DEFAULT_CHARSET
Header.Font.Color = clWindowText
Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif'
Header.Font.Style = []
Header.Options = [hoColumnResize, hoDrag, hoShowSortGlyphs, hoVisible]
Indent = 3
ParentShowHint = False
ShowHint = True
TabOrder = 0
TreeOptions.AnimationOptions = [toAnimatedToggle]
TreeOptions.MiscOptions = [toAcceptOLEDrop, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning]
TreeOptions.PaintOptions = [toShowRoot, toThemeAware, toUseBlendedImages]
TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect, toRightClickSelect]
OnChange = kwicvtChange
OnCompareNodes = kwicvtCompareNodes
OnFocusChanged = kwicvtFocusChanged
OnFreeNode = kwicvtFreeNode
OnGetText = kwicvtGetText
OnGetNodeDataSize = kwicvtGetNodeDataSize
OnHeaderClick = kwicvtHeaderClick
OnLoadNode = kwicvtLoadNode
OnSaveNode = kwicvtSaveNode
Columns = <
item
Position = 0
Width = 80
end
item
Alignment = taRightJustify
Position = 1
Width = 80
end
item
Alignment = taCenter
Position = 2
Width = 80
end
item
CheckBox = True
Position = 3
Width = 80
end
item
Position = 4
Width = 80
end
item
Position = 5
Width = 80
end
item
Position = 6
Width = 80
end>
end
[编辑]:
谢谢先艾因。
我仔细测试,发现如果我调用相同的功能超过一次,从第二次上,该virticalscrollbar会出现。就像是:
function fill;
begin
// filling VST;
end;
function button1click;
begin
fill;
end;
我单击button首次,verticalscrollbar不会出现;如果第二次或更多,它完美地示出了。
为什么呢?如何解决呢?
谢谢
该VirtualTree的滚动条选择通过ScrollBarOptions
属性设置。检查ScrollBarOptions.ScrollBars
值 - 这也许是ssNone
在VST3和多数民众为什么没有滚动条?