Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
Delphi XE Architect
|
AW: Eingabe in Webkomponente schreiben
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*
|