AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eingabe in Webkomponente schreiben

Ein Thema von Metallicwar · begonnen am 26. Dez 2010 · letzter Beitrag vom 26. Jan 2011
Thema geschlossen
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#1

Eingabe in Webkomponente schreiben

  Alt 26. Dez 2010, 18:09
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;
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eingabe in Webkomponente schreiben

  Alt 26. Dez 2010, 19:17
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).
$2B or not $2B

Geändert von himitsu (26. Dez 2010 um 19:20 Uhr)
 
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#3

AW: Eingabe in Webkomponente schreiben

  Alt 26. Dez 2010, 19:30
Zitat:
Wenn du die Tasten/Befehle an die Form sendest, dann taucht der Text doch auch nicht in einem Edit auf, oder?
doch, wenn ich den Focus auf ein Editfeld lege, dann taucht der text in dem Edit auf !!!! das ist ja das, was ich gerade nicht versteh -.-


Zitat:
Entweder du legst den Fokus auf das gewünschte Edit/Eingabefeld im Webbrowser
How?

Geändert von Metallicwar (26. Dez 2010 um 19:37 Uhr)
 
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#4

AW: Eingabe in Webkomponente schreiben

  Alt 28. Dez 2010, 01:33
kann mir den bei diesem Problem keiner weiterhelfen, ich komm einfach zu keiner Lösung ...
 
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#5

AW: Eingabe in Webkomponente schreiben

  Alt 24. Jan 2011, 21:35
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:
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;
So er trägt mir auch Werte in die Felder ein, allerdings etwas durcheinander.. am besten mal selber testen, es wird Java benötigt.

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*
 
Alt 25. Jan 2011, 08:15     Erstellt von orangestar
Dieser Beitrag wurde von fkerber gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#6

AW: Eingabe in Webkomponente schreiben

  Alt 26. Jan 2011, 19:47
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
 
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

AW: Eingabe in Webkomponente schreiben

  Alt 26. Jan 2011, 19:53
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
Bernhard
Iliacos intra muros peccatur et extra!
 
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#8

AW: Eingabe in Webkomponente schreiben

  Alt 26. Jan 2011, 19:57
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 ?!?
 
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#9

AW: Eingabe in Webkomponente schreiben

  Alt 26. Jan 2011, 19:59
Zitat von Knuddels - AGB:
5.6 Das Verwenden von Programmen, die für den Nutzer im Chat Texte schreiben oder auf andere Weise das automatische Trennen nach langzeitigem Untätigbleiben im Chat verhindern, (sog. Bots) ist untersagt. Ebenso ist die Benutzung von Programmen, mit denen Einfluss auf die im Chat zur Verfügung gestellten Spiele oder Nutzerinformationen (Info) genommen werden kann (sog. Cheat-Programme), untersagt.
Und da das ein Verstoss gegen deren AGB bedeutet machen wir hier mal dicht.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
 
Thema geschlossen


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz