2010-02-19 34 views
4

我對DevExpress的TPanels和TcxSplitter有一個關於佈局的問題。 panellayout http://pp.kpnet.fi/bengtsson/temp/layout.png分離器面板的佈局

主窗體有一些面板A到G.A - F被收集在一個面板ABCDEF中。 ABCDEF包含3個面板: AB,CDE和F. 面板CDE包含面板CD。

在面板之間的所有限制之間有一個來自DevExpress的TcxSplitter。 問題是用戶可以將ABCDEF和G之間的分離器移動到左側,以便它到達面板AB並覆蓋面板CDE。我不想這樣做。

相反,我希望面板CDE的最小寬度爲5像素。然後面板AB的寬度應該縮小。希望我解釋得夠好:) 我試圖設置面板CDE上的constraint.minwidth = 5,但面板仍然可以隱藏。也許Devexpress對此有一些很好的解決方案?

問候

+0

哇。我只是很驚訝,你已經用這個分離器到目前爲止。分離器組件可能是vcl中最不「可行」的組件。我建議你看看raize組件splitterpanel。我發現與它合作更容易。 – Vegar 2010-02-19 07:43:45

+0

這只是一個惱人的故障,總的來說我對Devexpress組件套件感到滿意。該應用程序主要用於網格。 – 2010-02-19 08:08:17

+0

我雖然dxSplitter只是一個更漂亮的版本,包括VCL分配器。 dxSplitter與標準vcl分離器有什麼不同? – Vegar 2010-02-19 12:52:43

回答

2

cxSplitter有minSize屬性,從我在測試應用中看到,這是尊重。由於只有1個MinSize屬性,因此會檢查分隔線兩側的面板,因此您無法在分隔線的一側指定最少50像素,另一側指定100。請確保AutoSnap屬性爲false。

但是在分離器上也有一個OnCanResize事件,所以你也可以防止在那裏調整大小。

此外,由於您使用的是devex,我建議您使用dockSite/dockPanel或LayoutControl v2而不是普通的Delphi TPanel。

+0

我使用OnCanResize事件並防止調整超出限制。謝謝! – 2010-02-22 06:38:53

1

調整時試試這個屬性

cxSplitter1.ResizeUpdate:=True;