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

請問要如何隱藏表單標題列後,又可拖曳表單?

尚未結案
hidylan
一般會員


發表:14
回覆:17
積分:6
註冊:2004-12-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-27 23:33:46 IP:218.175.xxx.xxx 未訂閱
我將表單的BorderStyle屬性選擇fbsNone讓標題列隱藏,可是我就不能了拖曳表單,想請問有什麼方法可以隱藏標題列,又可以拖曳表單,謝謝了。
shinjie
資深會員


發表:12
回覆:275
積分:287
註冊:2003-03-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-28 08:36:28 IP:203.73.xxx.xxx 未訂閱
請參考richtop大大的作品 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=42127 主要是設定MouseDown、MouseMove、MouseUp
------
我將在茫茫人海中尋訪我唯一之靈魂伴侶。
得之;我幸。不得;我命。
shinjie
資深會員


發表:12
回覆:275
積分:287
註冊:2003-03-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-01 10:13:58 IP:203.73.xxx.xxx 未訂閱
無意中看到一段資料可以更快實現這個功能,此為轉貼資料,來源不明。 一般情況下,移動一個表單需要將滑鼠放置在標題欄上才能拖動表單,?什?非要使用標題欄呢?其實我們可以使用一個巧妙的方法來實現將滑鼠放置在表單上按下就可拖動表單,下面先看實現代碼。在Form1的“Private”部分聲明過程: 在private部分加入下列代碼: procedure wmnchittest(var msg:twmnchittest);message wm_nchittest; 在程式部分加入以下代碼: procedure TForm1.wmnchittest(var msg:twmnchittest); begin inherited; if (htclient=msg.result) then msg.result:=htcaption; end; 上面的關鍵代碼雖然只有兩行,但它實現了滑鼠直接拖動表單的目的。代碼的原理是利用表單的WM_NCHITTEST消息,這個消息是當游標移動、滑鼠按下或釋放時發生的,當程式檢測到滑鼠在表單中按下的消息後(消息的值?htClient),將滑鼠在標題欄上按下時?生的消息(值?htCaption)傳遞出去,這樣就巧妙的欺騙程式認?是標題欄被按下,當然就可拖動表單了。
------
我將在茫茫人海中尋訪我唯一之靈魂伴侶。
得之;我幸。不得;我命。
hidylan
一般會員


發表:14
回覆:17
積分:6
註冊:2004-12-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-03 01:30:17 IP:220.143.xxx.xxx 未訂閱
謝謝 shinjie 提供了我這麼多資料,只是我目前都在每個Form上分別寫了三個move的事件,原本想試共用一個表單的事件,但一真直試不出來,等有時間就來馬上試這新方法,隨便試試要如何寫成共用一個事件。
系統時間:2024-07-03 13:03:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!