![]() |
SDC-Code für TWebBrowser: Doppelte Rücktaste!
Hi.
Ich verwende diesen Code ( ![]() :arrow: Rücktaste wird immer 2 mal betätigt, wenn man sie nur einmal drückt :arrow: Entfernen geht net trotzdem net... Wie kann ich das nervige Ding mit der Rücktaste beheben? Und wieso geht entfernen nicht? Ich versteh den Code halt net 100 % :oops: thx for help mfg mr47 |
Re: SDC-Code für TWebBrowser: Funktioniert nicht 100 %ig
toms hat gerade hier im Forum eine Demo für einen Brwoser mit der TWebBrowser-Komponente vorgestellt. Guck doch mal darein.
|
Re: SDC-Code für TWebBrowser: Funktioniert nicht 100 %ig
Bei dem ist es genauso! Liegt das an meinem Rechner oder ist das bei euch auch so, dass immer zwei Zeichen bei Rücktaste verschwinden???
mfg |
Re: SDC-Code für TWebBrowser: Doppelte Rücktaste!
Hallo,
Das ist mit dem Demo Browser von Toms auf meinem Rechner auch so. Folgenden Code nutze ich in meinen Programmen, damit klappt es. // ShortCut (Ctrl-C, Ctrl-O, etc.) in webBrowser2 einbauen
Delphi-Quellcode:
Ich hoffe es hilft. :)
procedure TForm1.MyMessageHandler(var Msg: TMsg; var Handled: Boolean);
var iOIPAO: IOleInPlaceActiveObject; Dispatch: IDispatch; begin { exit if we don't get back a webbrowser object } if WebBrowser2 = nil then begin Handled := False; Exit; end; Handled:=(IsDialogMessage(WebBrowser2.Handle, Msg) = True); if (Handled) and (not WebBrowser2.Busy) then begin if FOleInPlaceActiveObject = nil then begin Dispatch := WebBrowser2.Application; if Dispatch <> nil then begin Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO); if iOIPAO <> nil then FOleInPlaceActiveObject := iOIPAO; end; end; if FOleInPlaceActiveObject <> nil then begin if (Msg.message = WM_KEYDOWN) and (Msg.wParam = vk_Escape) then BuPanelMinClick(self); if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and ((Msg.wParam = VK_BACK) or (Msg.wParam = VK_LEFT) or (Msg.wParam = VK_RIGHT)) then //nothing - do not pass on Backspace, Left or Right arrows else FOleInPlaceActiveObject.TranslateAccelerator(Msg); end; end; end; MfG Lannes |
Re: SDC-Code für TWebBrowser: Doppelte Rücktaste!
Zitat:
z.B bei VK_UP, VK_DOWN wird doppelt "gesprungen". Hier meine verbesserte Variante:
Delphi-Quellcode:
procedure TfrmMyBrowser.MsgHandler(var Msg: TMsg; var Handled: Boolean);
const StdKeys = [VK_BACK, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT]; var IOIPAO: IOleInPlaceActiveObject; Dispatch: IDispatch; begin if WebBrowser1 = nil then begin Handled := False; Exit; end; Handled := (IsDialogMessage(WebBrowser1.Handle, Msg) = True); if (Handled) and (not WebBrowser1.Busy) then begin if FOleInPlaceActiveObject = nil then begin Dispatch := WebBrowser1.Application; if Dispatch <> nil then begin Dispatch.QueryInterface(IOleInPlaceActiveObject, IOIPAO); if IOIPAO <> nil then FOleInPlaceActiveObject := IOIPAO; end; end; if FOleInPlaceActiveObject <> nil then if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and (Msg.wParam in StdKeys) then //nothing - do not pass on Backspace, Left, Right, Up, Down arrows else FOleInPlaceActiveObject.TranslateAccelerator(Msg); end; end; |
Re: SDC-Code für TWebBrowser: Doppelte Rücktaste!
|
Re: SDC-Code für TWebBrowser: Doppelte Rücktaste!
Hi Leute
Ich hab einfach ma den Code von Toms genommen! Er funktioniert einwandfrei (hab bis jetzt noch keine Fehler festellen können!) Vielen Dank!!! :) mfg :coder: :spin2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz