全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2522
推到 Plurk!
推到 Facebook!

關於元件的Align及Splitter問題請教

答題得分者是:sryang
blue
中階會員


發表:169
回覆:136
積分:81
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-12-16 11:38:08 IP:210.244.xxx.xxx 訂閱
Hi,各位先進大家好:
因為要做一個可調整多個區域大小的功能,
目前自行使用幾個Panel Splitter 來實現,
但,總覺得怪怪的,
就是元件的Align只有左/右/Client等,
希望排列是 Panel1 Splitter1 Panel2 Splitter2 Panel3 Splitter3 Panel4
有時移了之後,
排列順序會亂掉,
變成 Panel1 Splitter1 Panel2 Panel3 Splitter2 Splitter3 Panel4
另外,要作成動態的,順序也是怪怪的,
是否能固定順序?
另,不知道各位先進是否有用過相關的元件?
謝謝!
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-12-16 23:05:48 IP:124.10.xxx.xxx 訂閱
你最好設定一下各 Panel 的 Constraints 屬性中的 MinWidth,不要為 0,這樣可以限制 run-time 時 panel 的最小寬度
以免 Panel 寬度被 splitter 拉成 0 之後,再拉寬就會亂了順序
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
blue
中階會員


發表:169
回覆:136
積分:81
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-12-17 17:13:46 IP:210.244.xxx.xxx 訂閱
Hi,您好:
這樣設定OK,
另一個奇怪的問題請教,
最右邊的那一個的寬度都會有問題,
例如將各個設定最小值為 5,
但,最邊的那一個只能拉到 28,
就再也拉不過去了,
且,中間的部份有時會拉不動,
不知是何原因?
謝謝!

===================引 用 sryang 文 章===================
你最好設定一下各 Panel 的 Constraints 屬性中的 MinWidth,不要為 0,這樣可以限制 run-time 時 panel 的最小寬度
以免 Panel 寬度被 splitter 拉成 0 之後,再拉寬就會亂了順序
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-12-17 17:47:54 IP:59.125.xxx.xxx 訂閱
最右邊的 Panel 設定為 alClient,其餘的 Panel 與所有的 Splitter 都要設定為 alLeft
或者是最左邊的 Panel 設定為 alClient,其餘的 Panel 與所有的 Splitter 都要設定為 alRight
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
blue
中階會員


發表:169
回覆:136
積分:81
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-12-18 08:45:13 IP:210.244.xxx.xxx 訂閱
Hi,您好:
小弟是這樣設定的,
但,總是覺得移動起來怪怪的,
不能很順利的得到"依想像"的結果,
如,最右一個不能到最小,
中間的部份有時會拖不動(感覺被右邊的部份卡住了),
不知先進是否有用過其他元件,
小弟的需求是 中間的部份是可隨意拖動(只要不拖出超過另一的Splitter)
謝謝!

===================引 用 sryang 文 章===================
最右邊的 Panel 設定為 alClient,其餘的 Panel 與所有的 Splitter 都要設定為 alLeft
或者是最左邊的 Panel 設定為 alClient,其餘的 Panel 與所有的 Splitter 都要設定為 alRight
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-12-18 09:51:58 IP:59.125.xxx.xxx 訂閱
這是很正常的狀況
舉個例子,一個 Form 上有 5 個 Panel,由左至右分別是 P1 到 P5
還有 4 個 Splitter,由左至右分別是 S1 到 S4
P1 到 P4 以及所有的 S,都是 alLeft,P5 是 alClient
排列是這樣的:P1、S1、P2、S2、P3、S3、P4、S4、P5

拉動 S1,寬度變化的是 P1 以及 P5
拉動 S3,寬度變化的是 P3 以及 P5

注意到了嗎?
邊的 Panel 以及 alClient 的 Panel 寬度會變化
相反地
若是 邊的 Panel 以及 alClient 的 Panel 寬度會變化

會「卡住」的原因就是 alClient 的寬度不允許縮成 0
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-04-20 18:23:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!