Einzelnen Beitrag anzeigen

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, 20: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*