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

TWebBrowser的Focus問題

答題得分者是:delphiwww
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-30 20:05:04 IP:61.218.xxx.xxx 未訂閱
在Form中使用TWebBrowser會有一個問題,就是無法讓Enter鍵讓TWebBrowser接收,因此,如果在TWebBrowser內輸入資料,根本無法換行,這個問題有解嗎?
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-11-30 20:15:29 IP:61.218.xxx.xxx 未訂閱
討論的是TWebBrowser,不考慮OLE謝謝。由於有記分,所以問題不在一個版內問,當然也有利於問題分類,謝謝。
delphiwww
資深會員


發表:145
回覆:363
積分:368
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-02 09:54:11 IP:202.145.xxx.xxx 未訂閱
應該是在該Webbrowser所在的Form啟動時少了 initialization OleInitialize(nil); finalization OleUninitialize; 請放在最後的end前面
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-11 08:21:06 IP:61.218.xxx.xxx 未訂閱
請問需要uses什麼嗎?會出現未定義的錯誤耶,謝謝。
delphiwww
資深會員


發表:145
回覆:363
積分:368
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-11 08:31:10 IP:202.145.xxx.xxx 未訂閱
你可以參考'用delphi寫webbrowser' http://home.pchome.com.tw/home/delphiwww/
引言: 請問需要uses什麼嗎?會出現未定義的錯誤耶,謝謝。
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-11 09:47:20 IP:61.218.xxx.xxx 未訂閱
uses activex . . . initialization OleInitialize(nil); finalization OleUninitialize; end. 下載了文件及您寫的程式,但還是不行,滑鼠控制TWebBrowser沒有問題,問題是鍵盤按鍵,尤其是Enter鍵,因為常用來換行及Submit等功能,感覺上Enter鍵失效好像是Focus的關係,很抱歉,由於某些因素,一定要使用Delphi's TWebBroser元件,請您再指點一下,謝謝。
delphiwww
資深會員


發表:145
回覆:363
積分:368
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-11 12:35:13 IP:202.145.xxx.xxx 未訂閱
將applicatiionevent1的onmessage event更改如下 procedure TForm2.ApplicationEvents1Message(var Msg: tagMSG;   var Handled: Boolean); const    StdKeys = [VK_TAB, VK_RETURN]; { standard keys }    ExtKeys = [VK_DELETE, VK_BACK, VK_LEFT, VK_RIGHT]; { extended keys }    fExtended = $01000000; { extended key flag } //var //   iOIPAO :IOleInPlaceActiveObject; //   Dispatch :IDispatch; begin    if IsChild(WebBrowser1.Handle, Msg.Hwnd) then    begin      if (Msg.Message = WM_CLOSE) then         msg.message:=0      else        if ((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP)) or           ((Msg.Message = WM_keydown) and (GetKeyState(vk_Control) < 0) and            ((Msg.wParam=ord('A')) or (Msg.wParam=ord('a')) or (Msg.wParam=ord('C')) or (Msg.wParam=ord('c')))) then           msg.message:=0        else           if msg.message=15 then              beep;      if ((Msg.Message >= WM_KEYFIRST) and (Msg.Message <= WM_KEYLAST)) and         ((Msg.wParam in StdKeys) or (GetKeyState(VK_CONTROL) < 0) or          (Msg.wParam in ExtKeys) and ((Msg.lParam and fExtended) = fExtended)) then      begin //        Dispatch :=WebBrowser1.Application; //        Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO); //        if iOIPAO<>nil then //        begin //           Handled := iOIPAO.TranslateAccelerator(Msg) = S_OK;           Handled:= (WebBrowser1.Application as IOleInPlaceActiveObject).TranslateAccelerator(Msg) = S_OK;               if not Handled then            begin               Handled := True;               TranslateMessage(Msg);               DispatchMessage(Msg);            end; //        end;      end;    end; end;
引言: uses activex . . . initialization OleInitialize(nil); finalization OleUninitialize; end. 下載了文件及您寫的程式,但還是不行,滑鼠控制TWebBrowser沒有問題,問題是鍵盤按鍵,尤其是Enter鍵,因為常用來換行及Submit等功能,感覺上Enter鍵失效好像是Focus的關係,很抱歉,由於某些因素,一定要使用Delphi's TWebBroser元件,請您再指點一下,謝謝。
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-11 14:25:24 IP:61.218.xxx.xxx 未訂閱
正解,其實我是往Form's OnKeyPress&OnKeyDown去思考,再次謝謝您。
系統時間:2024-04-26 3:47:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!