線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3776
推到 Plurk!
推到 Facebook!

如何取得桌面解析度大小?

答題得分者是:salo0610
QooJC
一般會員


發表:7
回覆:10
積分:3
註冊:2011-04-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-06-02 16:55:11 IP:219.71.xxx.xxx 訂閱
各位大大安安~。

請問,應該如何用BCB取得使用者的桌面解析度大小呢?

比如說:
800 × 600
1024 × 768
1366 × 768
……等等。
編輯記錄
QooJC 重新編輯於 2011-06-02 20:06:25, 註解 無‧
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-06-02 17:26:58 IP:202.39.xxx.xxx 訂閱
請看 TScreen 的 Help,使用 Screen->Width 與 Screen->Height。
QooJC
一般會員


發表:7
回覆:10
積分:3
註冊:2011-04-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-06-02 22:32:24 IP:219.71.xxx.xxx 訂閱
那請問,我如果想要取得「螢幕高度減去工作列」的高度,該怎麼存取?
我剛剛試驗過,再減去30即可,但是有變數可以直接存取嗎?
編輯記錄
QooJC 重新編輯於 2011-06-02 08:35:10, 註解 無‧
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-06-02 23:12:02 IP:202.39.xxx.xxx 訂閱
工作列可以隱藏、在上、在下、在左、在右,也可在顯示內容之外觀中改變字型大小而變動,
並不一定=30,且 TScreen 未提供。

可用 Scrfeen->Height - Form->WindowState = wsMaximized 時之 Height 取得。
salo0610
高階會員


發表:42
回覆:120
積分:107
註冊:2003-02-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-06-03 09:29:35 IP:60.249.xxx.xxx 未訂閱
是這個嗎??

Screen->WorkAreaWidth;
Screen->WorkAreaHeight;


===================引 用 QooJC 文 章===================
那請問,我如果想要取得「螢幕高度減去工作列」的高度,該怎麼存取?
我剛剛試驗過,再減去30即可,但是有變數可以直接存取嗎?
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-06-03 10:02:53 IP:202.39.xxx.xxx 訂閱
較新版才有 Screen->WorkAreaHeight = Screen->Height - > - > - ....,舊版則無。
編輯記錄
herbert2 重新編輯於 2011-06-02 20:03:40, 註解 無‧
herbert2 重新編輯於 2011-06-03 05:22:22, 註解 無‧
QooJC
一般會員


發表:7
回覆:10
積分:3
註冊:2011-04-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-06-03 10:03:26 IP:219.71.xxx.xxx 訂閱

===================引 用 herbert2 文 章===================
工作列可以隱藏、在上、在下、在左、在右,也可在顯示內容之外觀中改變字型大小而變動,
並不一定=30,且 TScreen 未提供。

可用 Scrfeen->Height - Form->WindowState = wsMaximized 時之 Height 取得。

----------------------------------------------------------------------------------------------------

請問您打的「Scrfeen -> Height」是「Screen -> Height」嗎?

我剛剛測試了一下,發現「Screen -> Height - Form -> WindowState」仍然與我的解析度寬度一樣,也就是等於「Screen -> Height」;
我的螢幕解析度為「1366 × 768」,我測試的結果是:「Screen -> Height - Form -> WindowState = 768」。

請問「Form -> WindowState」是什麼?

QooJC
一般會員


發表:7
回覆:10
積分:3
註冊:2011-04-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2011-06-03 10:05:16 IP:219.71.xxx.xxx 訂閱

===================引 用 salo0610 文 章===================
是這個嗎??

Screen->WorkAreaWidth;
Screen->WorkAreaHeight;

----------------------------------------------------------------------------------------------------

我用的是「CodeGear C Builder 2007」,的確可以用上面兩個變數直接存取~,測試無誤。
QooJC
一般會員


發表:7
回覆:10
積分:3
註冊:2011-04-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2011-06-03 10:06:12 IP:219.71.xxx.xxx 訂閱

===================引 用 herbert2 文 章===================
較新版才有 Screen->WorkAreaHeight = Screen->Height - - - ....,舊版則無。

----------------------------------------------------------------------------------------------------

請問所謂「舊版」是指BCB 6.0以前嗎~?
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#10 引用回覆 回覆 發表時間:2011-06-03 10:24:25 IP:202.39.xxx.xxx 訂閱
Sorry!打錯鍵,Screen 的 r 後多按到下方的 f 了。

經實測,當 Form 的 WindowState 屬性 = wsMaximized 時,

Form->Height = Screen->Height - > 8 (Form 的四周外框各 4,故上 下=8)

但不同的版本或許不同,無法確定。

若您已實測 OK,那就好了。有時這些數據,不同版本會有差異,若須精準,還是得自行測看看!
編輯記錄
herbert2 重新編輯於 2011-06-02 20:26:33, 註解 無‧
herbert2 重新編輯於 2011-06-02 20:30:00, 註解 無‧
herbert2 重新編輯於 2011-06-03 05:26:27, 註解 註: 發文後最好先 Preview 一下,以免文字被論壇系統給『門奄』掉或轉換掉。‧
sryang
尊榮會員


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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2011-06-05 18:26:40 IP:114.35.xxx.xxx 訂閱
視窗邊框的寬度、視窗標題列的高度、捲軸的寬度等等
都可以呼叫 GetSystemMetrics API 來取得。請參考
http://msdn.microsoft.com/en-us/library/ms724385(v=vs.85).aspx

視窗邊框的寬度可以設定,所以最好是呼叫 GetSystemMetrics 來取得
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-03-29 15:18:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!