Form中屬性BorderIcons中biHelp...... |
答題得分者是:ccchen
|
kenji
一般會員 ![]() ![]() 發表:32 回覆:44 積分:20 註冊:2002-08-05 發送簡訊給我 |
|
ccchen
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
當你點?時, 送出WM_SYSCOMMAND--SC_CONTEXTHELP之Message
之後用此問號點到某一元件時送出 WM_HELP
我們可以直接抓取WM_HELP來處理,以下提供一小Sample 1. FOrm上設定
BorderIcons = [biSystemMenu, biHelp]
BorderStyle = bsDialog 2. 寫一個FormWndProc如下, 並在FormCreate時
WIndowProc:=FormWndProc //如此所有Form 之message均會經由此
procedure TForm1.formWndProc(var Message: TMessage); VAR p:Tpoint; c:TWinControl; begin if Message.Msg = WM_HELP then begin //攔截WM_HELP p:=TWMHelp(message).HelpInfo.MousePos; //取得MOUSE位置, c:=FindVCLWindow(p); //找到該位置之WinControl showmessage(c.name); end else //其餘之messag留給Default WndProc處理 WndProc(Message); end;[NOTE] 由Help|Window SDK及Message.pas查一下HelpInfo之內容, 我只是簡單的拿Mousepos做為Demo 3.如果你有已製作好之help檔,且HelpContext編排正確則可 a. 在FormCreate時 application.HelpFile:='xxx.hlp'; b. 在wndproc中 application.HelpContext:=xxx |
kenji
一般會員 ![]() ![]() 發表:32 回覆:44 積分:20 註冊:2002-08-05 發送簡訊給我 |
|
ccchen
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
kenji
一般會員 ![]() ![]() 發表:32 回覆:44 積分:20 註冊:2002-08-05 發送簡訊給我 |
|
ccchen
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
一步一步來吧
你可以照這個做看看嗎
1. 在objectinspector中找到BorderStyle,於Combobox中選bsDialog
然後找到BorderIcons將biSystemMenu及biHelp設為Ture,其餘設為Flase 2.
Tform1=class(TForm) ... procedure FormCreate(Sender: TObject); //在Form上Doubleclick會產生此行 procedure formWndProc(var Message: TMessage); //請照著keyin public ... end; procedure TForm1.FormCreate(Sender: TObject); begin WIndowProc:=FormWndProc; //請照著keyin end; //以下完全照著keyin procedure TForm1.formWndProc(var Message: TMessage); VAR p:Tpoint; c:TWinControl; begin if Message.Msg = WM_HELP then begin p:=TWMHelp(message).HelpInfo.MousePos; c:=FindVCLWindow(p); showmessage(c.name); //可改此行去顯示你想顯示的東西 end else WndProc(Message); end;將程式執行起來, 當你點 ? 後再點Form上任何元件, 就會顯示元件名稱 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |