wanneer ik een html laad in de webbrowser, en de html file heeft een box waar je tekst kunt invoeren.
en hier is het probleem, Ik kan dan geen ENTER gebruiken om naar de volgende regel te gaan
Hoe los je dit op
Alvast bedankt
wanneer ik een html laad in de webbrowser, en de html file heeft een box waar je tekst kunt invoeren.
en hier is het probleem, Ik kan dan geen ENTER gebruiken om naar de volgende regel te gaan
Hoe los je dit op
Alvast bedankt
Zou je je probleem iets duidelijker kunnen beschrijven, het is ( vindt ik ) een beetje onduidelijk.
!
Van wat ik ervan begrijp heb je een aantal invoervelden en wil je met enter naar het volgende veld? Je zou misschien KeyPreview van het Form op true kunnen zetten en dan met OnKeyPress een enter veranderen in een tab, maar als je dan een multiline invoerveld in je HTML hebt gaat het helemaal fout...
Het beste is denk ik javascript gebruiken, er zijn volgens mij genoeg voorbeelden van...
Qui custodiet ipsos custodes
je bedoelt dat er een Memo aanwezig is in de html-code. Door nu naar de volgende regel te springen ( enter ) moet je dus naar de volgende regel springen. Denk dat je dit bedoelt. Had het nog een keer gelezen en toen begreep ik het wel ( denk ik ). Ik weet het niet zeker, want psychomark denkt dat je naar het volgende memo wilt springen of zo. Maar verder is het wel hetzelfde:
Enter toets opvangen en doorsturen naar de Webbrowser. Iets met sendmessage of misschien wel een standaard procedure in de webbrowser zelf.
!
yep dat is wat ik bedoel.Originally posted by SVG_1986
je bedoelt dat er een Memo aanwezig is in de html-code. Door nu naar de volgende regel te springen ( enter ) moet je dus naar de volgende regel springen. Denk dat je dit bedoelt. Had het nog een keer gelezen en toen begreep ik het wel ( denk ik ). Ik weet het niet zeker, want psychomark denkt dat je naar het volgende memo wilt springen of zo. Maar verder is het wel hetzelfde:
Enter toets opvangen en doorsturen naar de Webbrowser. Iets met sendmessage of misschien wel een standaard procedure in de webbrowser zelf.
ik kan er niks over vinden in de help van delphi
en ook niet op het interpret
Wie kan mij helpen.
Alvast bedankt.
Oh wacht, enter werkt niet zoals het in IE normaal wel doet in een invoerveld?
Vaag, vang je niet toch per ongeluk met KeyPreview de enter af ofzo?
Qui custodiet ipsos custodes
Nee
Is het dan een bug in delphi ofzo
het probleem is volgens mij dat het formulier de enter-toets opvangt ipv de Twebbrowser.
!
Heb jij dan misschien een code voor mij
Ik heb ff op het internet gezocht, en heb een code gevonden die werkt.
Code:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, ActiveX, StdCtrls; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } FOleInPlaceActiveObject: IOleInPlaceActiveObject; procedure MsgHandler(var Msg: TMsg; var Handled: Boolean); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormDestroy(Sender: TObject); begin FOleInPlaceActiveObject := nil; end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage := MsgHandler; end; procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean); var iOIPAO: IOleInPlaceActiveObject; Dispatch: IDispatch; begin { exit if we don't get back a webbrowser object } 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 = 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;
Ik heb deze code gebruikt omdat als ik in google een zoekterm intikte en daarna op <enter> drukte geen reactie kreeg. Deze code werkte dan ook met google perfect. Maar als ik vervolgens op www.startpagina.nl ga zoeken en op enter klik werkt het NIET terwijl het zonder deze code wel werkte op startpagina.nl maar in google weer niet. Hoe kan dit worden afgevangen, iemand een idee?
Volgens mij heeft het met de scripting van de pagina te maken.
BASIC programmers never die, they GOSUB and don't RETURN.
Old programmers also never die. They just branch to a new address.
Waarschijnlijk komt dat inderdaad door alle vage javascript waar ze bij Startpagina dol op zijn.
Marcel
Het gebeurt bij diverse websites. Bijv. www.rabobank.nl.
Ctrl-C werkt trouwens ook in beidde gevallen niet.
BASIC programmers never die, they GOSUB and don't RETURN.
Old programmers also never die. They just branch to a new address.
Voor mij is het belangrijkste dat ik het <enter> probleem oplos. Met code werkt het op de ene reeks sites en op de andere reeks niet en zonder de code werkt het op de andere reeks sites maar op de ene reeks weer niet.
Het is me overigens gelukt om het werkend te krijgen. Wat ik doe is alleen de <enter> afvangen in de messagehandler. En heb ik die afgevangen dan stuur ik er gewoon nog een <enter> achteraan die niet door de messagehandler wordt afgevangen:
keybd_event(13,0,0,0);
keybd_event(13,0,KEYEVENTF_KEYUP,0);
BASIC programmers never die, they GOSUB and don't RETURN.
Old programmers also never die. They just branch to a new address.
EmbeddedWB is toch nog de enige die de hele TWebbrowser toetsen goed afhandeld.
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks