0

form1に1つのVirtualStringTree(VST1)を配置し、それにいくつかのデータを追加しました。垂直スクロールバーはノードの数に関係なく表示され、ノードの高さのデフォルトのプロパティについては何もしませんでした。次に、VST1をform2にコピーし、VST2という名前を付けたところ、VST2のスクロールバーが表示されなくなりました。VST2のparentコントロールとalignプロパティを変更しました(何度もテストしましたが、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

[編集]:

最初にアインに感謝します。

注意深くテストしたところ、同じ関数を2回以上呼び出すと、そのvirticalscrollbarが表示されることがわかりました。何かのようなもの:

function fill;
begin
// filling VST;
end;

function button1click;
begin
fill;
end;

button1を初めてクリックすると、垂直スクロールバーが表示されません。2回目以上の場合は、完全に表示されます。

なぜ?、それを解決する方法は?

ありがとう

4

1 に答える 1

2

VirtualTree のスクロールバー オプションは、ScrollBarOptionsプロパティを介して設定されます。値を確認してくださいScrollBarOptions.ScrollBars- おそらくそれはssNoneVST3 にあり、スクロールバーがないのはなぜですか?

于 2011-09-19T11:13:07.733 に答える