c905165
中階會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:50 回覆:120 積分:54 註冊:2002-09-29
發送簡訊給我
|
有時候,我們如果將元件放在 form 上,如果放超過,就會出現 form 本身會變成可以捲動,或者是 form 把它拉得太小,這個時候,要如何用程式碼判斷,是否有這個現象發生?
------ 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
|
00156
高階會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:45 回覆:195 積分:112 註冊:2002-06-01
發送簡訊給我
|
你可以利用Form及其中各元件的下面幾個屬性經運算來判斷:
Top
Left
Width
Height
|
c905165
中階會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:50 回覆:120 積分:54 註冊:2002-09-29
發送簡訊給我
|
也就是說,我要測試過「所有元件」的top height和left width有沒有超過form的width和height? 因為假設我的 form裡面有不少的元件,而這一些元件經過程式的執行一段時間之後,可能會被調位置,那假設我有100個元件,就要做好幾百次的判斷囉?
------ 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
|
領航天使
站長
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](http://delphi.ktop.com.tw/images/baby15-2.jpg) 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25
發送簡訊給我
|
引言:
也就是說,我要測試過「所有元件」的top height和left width有沒有超過form的width和height? 因為假設我的 form裡面有不少的元件,而這一些元件經過程式的執行一段時間之後,可能會被調位置,那假設我有100個元件,就要做好幾百次的判斷囉?
一個方向,
判斷Form有無跑出ScrollBar? ~~~Delphi K.Top討論區站長~~~
------ ~~~Delphi K.Top討論區站長~~~
|
FrederickPau
資深會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:4 回覆:161 積分:268 註冊:2002-11-04
發送簡訊給我
|
你可以考慮在元件被移動時, 做是否超出 Form 邊界的判斷呀
如果你是放新的元件時, 也可以先判斷 Mouse 的位置加上元件的 Height, Width 去判斷是否超出
|
c905165
中階會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:50 回覆:120 積分:54 註冊:2002-09-29
發送簡訊給我
|
對對對,天使果然英明,但是要如何利用程式碼判斷出是否form已經跑出 scroll bar.
用人眼看當然沒有問題,但是用程式,我就不會了。
------ 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
|
hagar
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](http://delphi.ktop.com.tw/download/upload/73824_smallhagar.jpg) 發表:143 回覆:4056 積分:4445 註冊:2002-04-14
發送簡訊給我
|
這樣可行嗎?
begin
if Form1.HorzScrollBar.Visible or Form1.VertScrollBar.Visible then
// 超出邊界
end;
--
Everything I say is a lie.
|
c905165
中階會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:50 回覆:120 積分:54 註冊:2002-09-29
發送簡訊給我
|
理論上不可行,因為這個只是設定成「是否要讓捲動軸設為可見」,也就是說不管捲軸是否已經產生作用,它只是設定說將來捲動軸是否會出現來。 實際上也不可行,因為剛剛利用程式跑過了,就是算捲動軸沒有出現,它還是會執行 then 底下的東西。請問還有解嗎? 希望它不是難題。
------ 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
|
c905165
中階會員
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:50 回覆:120 積分:54 註冊:2002-09-29
發送簡訊給我
|
發現,根據 hargar 的做法改成:
form1.HorzScrollBar.IsScrollBarVisible
就可以了,只是,它不是很聰明,有點死,所以做成game的判斷,就不太靈活。
謝謝 hargar 提供的訊息。
------ 有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
|