如何使TVirtualStringTree滚动条可见?

问题描述 投票:0回答:1

我把一个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不会出现;如果第二次或更多,它完美地示出了。

为什么呢?如何解决呢?

谢谢

delphi scrollbar virtualtreeview tvirtualstringtree
1个回答
2
投票

该VirtualTree的滚动条选择通过ScrollBarOptions属性设置。检查ScrollBarOptions.ScrollBars值 - 这也许是ssNone在VST3和多数民众为什么没有滚动条?

© www.soinside.com 2019 - 2024. All rights reserved.