![]() |
Eingabe in Webkomponente schreiben
Hi zusammen,
ich möchte einen Text eines Editfelds durch klicken auf einen Button, automatisch in ein Editfeld einer Webkomponente schreiben. Mit meiner procedure funktioniert das aber nicht, wenn ich allerdings den Focus auf ein Editfeld meines Formulars lege anstatt auf den TWebbrowser funktioniert es?!?! Zum Testen habe ich dann einfach mal einen Timer eingebaut, mit dem funktionierts ... Wieso funktionert es mit Timer aber ohne nicht?!? Kann mir das mal jemand erklären und mir evtl. weiterhelfen ?!?
Delphi-Quellcode:
procedure TForm1.btnEinloggenClick(Sender: TObject);
var c: Char; i: Integer; begin chatWb.Navigate('www.google.de'); chatWb.SetFocus; if Length(edtUsername.Text)>0 then begin for I := 0 to Length(edtUsername.Text) do begin c:= edtUsername.Text[i]; case c of '1'..'9': begin keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0) end; 'A'..'Z': begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(ord(c), 0, 0, 0); keybd_event(vk_Shift, 0, KEYEVENTF_KEYUP, 0); keybd_event(ord(c),0 ,KEYEVENTF_KEYUP, 0); end; 'a'..'z': begin c:= UpCase(c); keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0); end; else begin keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0); end; end; end; end; end; |
AW: Eingabe in Webkomponente schreiben
Die Seite im Webbrowser ist wie ein Formular.
Wenn du die Tasten/Befehle an die Form sendest, dann taucht der Text doch auch nicht in einem Edit auf, oder? Soll heißen: Entweder du legst den Fokus auf das gewünschte Edit/Eingabefeld im Webbrowser und sendest dann an das Edit, oder du könntest dich via JavaScript an das Edit wenden (irgendwie ging das, also über eine Schnittstelle ähnlich dem JavaScript). |
AW: Eingabe in Webkomponente schreiben
Zitat:
Zitat:
|
AW: Eingabe in Webkomponente schreiben
kann mir den bei diesem Problem keiner weiterhelfen, ich komm einfach zu keiner Lösung ...
|
AW: Eingabe in Webkomponente schreiben
Kram ich mal wieder diesen alten Beitrag aus, bin nämlich leider noch nicht viel weiter gekommen.
Ich möchte eben einen Usernamen, passwort und channel in meinem Programm eintragen klicke den Verbinden button und er soll mir meine werte in die entsprechenden "Webfelder eintragen" Mein Code:
Delphi-Quellcode:
So er trägt mir auch Werte in die Felder ein, allerdings etwas durcheinander.. am besten mal selber testen, es wird Java benötigt.
procedure TfrmMain.btnEinloggenClick(Sender: TObject);
begin EmbeddedWB1.Navigate('http://www.mainfranken-chat.de/zumchat.htm'); TimerEinloggen.Interval := 25000; TimerEinloggen.Enabled := True; EmbeddedWb1.SetFocus; end; procedure TfrmMain.btnEintretenClick(Sender: TObject); begin frmChannel.Visible := True; frmChannel.TimerSchreiben.Enabled := True; frmChannel.lbxNickname.Items.Add(frmMain.edtUsername.Text); end; procedure TfrmMain.FormCreate(Sender: TObject); begin TimerEinloggen.Enabled := False; end; procedure TfrmMain.TimerEinloggenTimer(Sender: TObject); var c: Char; i: Integer; begin TimerEinloggen.Enabled := False; // Übergabe des Usernamens if Length(edtUsername.Text)>0 then begin for I := 0 to Length(edtUsername.Text) do begin c:= edtUsername.Text[i]; case c of '1'..'9': begin keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0) end; 'A'..'Z': begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(ord(c), 0, 0, 0); keybd_event(vk_Shift, 0, KEYEVENTF_KEYUP, 0); keybd_event(ord(c),0 ,KEYEVENTF_KEYUP, 0); end; 'a'..'z': begin c:= UpCase(c); keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0); end; else begin keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0); end; end; end; keybd_event(VK_TAB, 0, 0, 0); begin // Übergabe des Passworts for I := 0 to Length(edtPasswort.Text) do begin c:= edtPasswort.Text[i]; case c of '1'..'9': begin keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0) end; 'A'..'Z': begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(ord(c), 0, 0, 0); keybd_event(vk_Shift, 0, KEYEVENTF_KEYUP, 0); keybd_event(ord(c),0 ,KEYEVENTF_KEYUP, 0); end; 'a'..'z': begin c:= UpCase(c); keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0); end; else begin keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0); end; end; end; end; keybd_event(VK_TAB, 0, 0, 0); begin // Übergabe des Channels for I := 0 to Length(edtChannel.Text) do begin c:= edtChannel.Text[i]; case c of '1'..'9': begin keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0) end; 'A'..'Z': begin keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(ord(c), 0, 0, 0); keybd_event(vk_Shift, 0, KEYEVENTF_KEYUP, 0); keybd_event(ord(c),0 ,KEYEVENTF_KEYUP, 0); end; 'a'..'z': begin c:= UpCase(c); keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0); end; else begin keybd_event(ord(c), 0, 0, 0); keybd_event(ord(c), 0, KEYEVENTF_KEYUP, 0); end; end; end; // "Eintreten Button" hat Focus und wird über eine Leertastendruck gedrückt begin keybd_event(VK_TAB, 0, 0, 0); keybd_event(VK_SPACE, 0, 0, 0); keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0); end; end; end; end; Zum Testen hab ich einfach mal 3 Editfelder auf die Form gezogen und den Focus eben auf Edit1 gesetzt. Nach 25 werden meine Werte wie gewünscht eingetragen. Aber in der Webanwendung funktioniert's irgendwie nicht, so wie ich es mir vorstelle, jemand eine Idee? Würde mich über Hilfe freuen, dass ich hier endlich mal weiter komme *grins* |
AW: Eingabe in Webkomponente schreiben
hat denn keiner eine Idee?
Ich habe vll gedacht, dass es an falscher Einrückung lag, aber wieso hat es dann bei den Editfields funktioniert? Bitte dringends um Hilfe :stupid: |
AW: Eingabe in Webkomponente schreiben
Da hast du dir aber was tolles rausgesucht, nen Java-Chat-Applet über Knuddels.
Also zum Thema: Hast du mal geschaut, ob in den Eingabefeldern der Cursor blinkt, bevor du mit deiner Eingabe anfängst? Bernhard |
AW: Eingabe in Webkomponente schreiben
ja da hab ich mir was tolles rausgesucht *grins*
ja der Cursor blinkt, da hab ich auch schon drauf geachtet, aber ja der blinkt. habe jetzte mal als Nickname: Hallo und als Passwort: test eingegeben mein Hallo schreibt er mir in das richtige Feld hinein, allerdings hängt er noch das t von test dran und schreibt abschließend das est in das Feld des Passwortes ?!? |
AW: Eingabe in Webkomponente schreiben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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-2025 by Thomas Breitkreuz