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

MainForm 最大化,底端要在工作列之上

尚未結案
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-27 16:50:58 IP:202.39.xxx.xxx 未訂閱
請為各位大大 我要把 MainForm 最大化 我要如何抓桌面的解析度 如果我直接用最大化,底部會在工作列之下 要如何才能把 MainForm 的最底端跟工作列切齊 謝謝!! Eric Lin
------
Eric Lin
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-27 17:40:40 IP:61.70.xxx.xxx 未訂閱
您好: ShowMessage(IntToStr(Screen.Width));//寬度 ShowMessage(IntToStr(Screen.Height));//高度 不過最大化就會跟工作列切齊了,不曉得您為何會出現"底部會在工作列之下"???
vincent1974
一般會員


發表:2
回覆:2
積分:0
註冊:2004-10-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-27 17:57:51 IP:211.75.xxx.xxx 未訂閱
如果 Form.Position = poScreenCenter 時, 以程式碼變更 Form.WindowState := wsMaximized 則 Form 雖然最大化了, 可是卻會上下各留一點點的空白(剛好就是工具列的一半) 因此,如果要把 Form 最大化, 建議先把 Position 設定為 poDefault。 這樣就會「切齊」工具列了
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-27 19:04:35 IP:59.104.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject);
begin
  FormStyle:=fsStayOnTop;
  Left  :=0;
  Top   :=0;
  Width :=Screen.Width;
  Height:=Screen.Height;
end;    
發表人 - jest0024 於 2005/06/27 19:05:16
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-27 22:57:20 IP:61.59.xxx.xxx 未訂閱
引言: 如果 Form.Position = poScreenCenter 時, 以程式碼變更 Form.WindowState := wsMaximized 則 Form 雖然最大化了, 可是卻會上下各留一點點的空白(剛好就是工具列的一半) 因此,如果要把 Form 最大化, 建議先把 Position 設定為 poDefault。 這樣就會「切齊」工具列了
這個現象目前會在 XP 華麗的介面下, 當 MDIMainForm.WindowState := wsMaximized 並且 MDIMainForm.Position := poScreenCenter 或是 poDesktopCenter 的狀態下就會發生, 不過調整成其他選項就不會了. 目前有用過 D5 D6 都如此. 雪龍 http://bestlong.no-ip.com/ 學海無涯覺無盡,勤做筆記防失憶
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
zombit
初階會員


發表:63
回覆:39
積分:30
註冊:2004-05-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-28 00:05:46 IP:61.62.xxx.xxx 未訂閱
Hi, eric039 可以試試看把 Form 的 BorderStyle 改成 bsNone, WindowState 改成 wsMaximized, 這樣也會將工作列蓋住.
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-28 08:56:42 IP:202.39.xxx.xxx 未訂閱
奇怪了 我的視窗就是會被工作列蓋住 我的設定是這樣的 BorderStyle := bsSizeable; FormStyle := fsMDIForm; 不管我的 Position 設定那一項 都會被蓋住 還是有沒有辦法知道 工作列的高度 這樣就給他視窗高-工作列高,就好了。 Eric Lin
------
Eric Lin
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-28 09:25:45 IP:211.22.xxx.xxx 未訂閱
就我的經驗, 只有在 XP 的視窗環境下(目前還沒機會測試 Window 2003), Form 的屬性在設計時期設定了下列範圍: BorderStyle := bsNone 或 bsSizeable FormStyle := fsNormal 或 fsMDIForm 或 fsStayOnTop Position := poDesktopCenter 或 poScreenCenter WindowState := wsMaximized 當視窗最大化的位置就會有誤判的問題. 所以建議改變 Position 是目前繞過問題的方法. 不過當 WindowState 預設為 wsNormal 啟動後再人工最大化, 視窗的位置就沒有問題. 所以我改在程式中調整 WindowState := wsMaximized 來處理. 不過放在 OnShow 卻狀況還是一樣, 然後改在 OnActive 執行才可以. 不過以上的測試結果有可能會因為 XP 的視窗主題設定有所差異. 雪龍 http://bestlong.no-ip.com/ 學海無涯覺無盡,勤做筆記防失憶 發表人 - bestlong 於 2005/06/28 09:43:58
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-06-28 10:02:13 IP:61.70.xxx.xxx 未訂閱
您好: 以下程式碼可以取得工作列大小並將Form設定為切齊工作列的大小. procedure TForm1.Button1Click(Sender: TObject); var abd: TAppBarData; begin abd.cbSize:=sizeof(abd); SHAppBarMessage(ABM_GETTASKBARPOS, abd); Form1.Top:=0; Form1.Left:=0; Form1.Width:=abd.rc.Right; Form1.Height:=abd.rc.Top; end; 取得工作區大小: //GetSystemMetrics(SM_CXFULLSCREEN); //取得工作區域的寬 //GetSystemMetrics(SM_CYFULLSCREEN); //取得工作區域的高 另外這一篇解析度異動時的處理,也給你參考. http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30728
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-06-28 17:50:21 IP:59.104.xxx.xxx 未訂閱
Screen.WorkAreaHeight Screen.WorkAreaWidth Screen.WorkAreaLeft ....
JustinShen
中階會員


發表:22
回覆:104
積分:80
註冊:2003-09-20

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-06-29 13:45:26 IP:61.155.xxx.xxx 未訂閱
引言: Screen.WorkAreaHeight Screen.WorkAreaWidth Screen.WorkAreaLeft ....
同意这一方法,其它的方法太虑了. 只要使用WorkArea...就可以了. 我经常这么使用. Justin Shen
------
====================
我为一切作努力!
Justin Shen

eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-06-30 11:04:08 IP:202.39.xxx.xxx 未訂閱
感謝大家的幫忙 Jest0024 提供的方法最簡單了 謝謝!! Eric Lin Eric Lin
------
Eric Lin
系統時間:2024-05-09 3:56:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!