2013-10-30 71 views
0

在我的應用程序中,我有一個帶搜索框的TListBox。每個項目內都有一個用於數據顯示的TTreeView(需要展開/摺疊功能)。爲什麼我會這樣做,而不是僅僅使用不帶TListbox的TTreeView,因爲我希望我可以使用TListBox的搜索功能,並且TTreeview不會很好地滾動。 無論如何,所以我的問題是,我們說我有每個ListBoxItem.size:= 80 ..它看起來不錯,工程很大等等等等等......但是當我想展開每個ListBoxItem中的TreeViewItem來查看它的子TreeViewItems,然後我看不到所有的數據,我需要重新調整TListBoxItem的大小。如何在擴展TTreeItem時重新調整ListBoxItem的大小

如何擴展TTreeItem時重新調整ListBoxItem的大小?

使用Delphi Xe5開發iOS應用程序。

回答

0

對於任何尋找答案,這裏是我想出了...請記住,TreeView和它的所有節點是動態創建的,並放置在動態創建的listboxitems中。所有所有的TreeView &樹型視圖組件的.HitTest屬性都設置爲「假」,我已經放在圖像上展開按鈕上的每個樹視圖執行下面我自己的行動:

procedure TMain_Form.Image1Click(Sender: TObject); 
var 
Item : TListBoxItem; 
view : TTreeView; 
tree1, 
tree2 : TTreeViewItem; 
height : extended; 
i  :integer; 
begin 
Item := TListBoxItem.Create(nil); 
Item := TImage(Sender).Parent as TListBoxItem; 
view := Item.Children.Items[1] as TTreeview; 
tree1 := View.Items[0]; 
i := 0; height := 0; 
while i <> Tree1.Count do begin 
    tree2 := tree1.Items[i]; 
    height := height + 40; 
    i := i + 1; 
end; 
if item.Height = 40 then begin 
    tree1.ExpandAll; 
    item.Height := Item.height + height; 
    view.height := Item.height; 
end else begin 
    View.CollapseAll; 
    Item.Height := 40; 
end; 

無需要'時'的陳述,我意識到這一點。我剛剛從那裏搞到了這個,之前我們不得不懶惰地改變它。

相關問題