2011-04-27 40 views
6

我的應用程序具有這樣的形式 - 這是用於設計其他形式,幷包含一個對象檢查(BAS ASCII藝術如下)滾動條和對齊到客戶端以嵌套形式

----------------------- 
|obj | design forms | 
|insp| here   | 
| |    | 
----------------------- 

所以,應用程序「的主窗體包含對象窗體和可以放置組件的另一個窗體(頂部還有一個用於選擇組件的工具欄,但我沒有示出)。現在

,如果我做的主要形式時,我想的內容擴大,以適應它...

------------------------------- 
|obj | design forms   | 
|insp| here     | 
| |      | 
| |      | 
| |      | 
------------------------------- 

所以我的「表單設計器」的形式有Align := alClient;

但是,如果我其上放置一個組成部分,因此它重疊邊緣...

------------------------------- 
|obj | design forms   | 
|insp| here    ----------- 
| |     |component| 
| |     ----------- 
| |      | 
------------------------------- 

當然屏幕顯示

------------------------------- 
|obj | design forms   | 
|insp| here    -----| 
| |     |comp| 
| |     -----| 
| |      | 
------------------------------- 

我想要一個自動滾動條。

但是,似乎Align := alClient;覆蓋AutoScroll:= true;

任何想法如何解決這個衝突? 1)設計師區域應該縮小和增長,總是填充主窗體的正確部分作爲主窗體的大小調整 2)如果某個組件放置在設計器窗體的邊緣,那麼它應該增加滾動條( s)

我完全錯過了觀點?我有處理組件放置的代碼 - 如果我需要添加滾動條,我應該在那裏檢查嗎?

+2

+1 ascii art :) – 2011-04-27 10:59:39

+1

什麼類型的容器組件是持有正在設計的表單的內容?我認爲標準的'TScrollBox'按照你想要的方式運行。 – 2011-04-27 13:43:02

+0

+1爲ascii藝術+1 ;-) – Mawg 2011-04-28 02:56:02

回答

1

我認爲一個相對簡單的解決方案是將窗體的Align切換爲alNone,並在父窗體的resize事件中定位並調整它的大小。據推測,你在那裏有一個分離器,其大小事件你也必須聽。

只要你只有檢查員和設計表單,那麼這是一個非常簡單的解決方案來實現。如果你有更多的工具窗口,那麼它會變得更棘手,但基本的想法可以擴展。

+0

+1是的,有一個分離器,這聽起來像一個整潔的解決方案。我會幫你解決問題並回復你。謝謝 – Mawg 2011-04-27 12:20:58

+1

@Mawg:我曾經留下過讚美的評論,暗示我也提出了我正在評論的答案。後來事實證明,我實際上沒有註冊。好像這次發生在你身上一樣。那或者你的評論是爲了一個完全不同的答案而剛好是關於一些分離器(也許是時間分離器),並且由於某種錯誤而降落在這裏。 :) – 2011-04-29 08:19:23

+0

+1爲您的答案和+1爲您的評論。對於那個很抱歉。編寫代碼需要一段時間,所以我不會給出答案,以防某人以某種方式發佈更好的答案 - 但我並不屏住呼吸。感謝您帶領我朝着正確的方向發展 – Mawg 2011-04-30 04:19:40