Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi POST Formular ausfüllen + Werte ablesen (https://www.delphipraxis.net/116521-post-formular-ausfuellen-werte-ablesen.html)

FreakLitkowsky 1. Jul 2008 00:04


POST Formular ausfüllen + Werte ablesen
 
Hallo Leute!
Ich schraube seit neustem wieder an meinem SMS-Programm herum und brauche wieder eure Hilfe.

Also, es geht um folgendes Problem / folgende Probleme:
1) Ich benutze TWebbrowser und möchte gerne, dass man entsprechende LabelEdit-Felder ausfüllt und diese dann automatisch in einem Post-Formular eingefügt werden (nach klicken auf einem Button).
2)Ebenfalls will ich einen Wert aus einem Post-Formular Objekt entnehmen und diese dann für Delphi in einer Verzweigung überprüfen lassen, bsp. Das Formular besitzt ein Objekt namens Nachricht. Nachricht ist der Wert "Test" zugeordnet. Jetzt will ich mit Delphi überprüfen, ob der Wert des Post-Fomular-Objektes = Test ist (also mit IF).
3) Ich möchte gerne, dass alle PopUps die von TWebbrowser ausgehen geblockt werden. Ich weiß aber nicht wie das gehen soll.
:gruebel:
...
Ich hoffe ihr wisst wovon ich rede und ihr habt das verstanden was ich euch versuche zu erklären.
Ihr würdet mir damit echt einen großen gefallen tun.

Wenn ihr weitere Informationen braucht fragt ruhig.

:hi: Bis dann

toms 1. Jul 2008 04:38

Re: POST Formular ausfüllen + Werte ablesen
 
Hallo,

Wie sieht denn dein bisheriger Code bis aus? Wo genau kommst du nicht weiter?

Zu allen Punkten sind Infos in der DP / Google zu finden.

z.B zu Punkt 1) [google]webbrowser ausfüllen[/google] oder [google]webbrowser ausfüllen delphi[/google]

FreakLitkowsky 1. Jul 2008 04:52

Re: POST Formular ausfüllen + Werte ablesen
 
Hallo, danke für die Antwort.

Ich werde mir deine Links mal anschauen. Vielleicht finde ich ja dort eine Antwort.


Also den bisherigen Code habe ich bis jetzt immer wieder erneuert, weil ich schon vergebens so viele verschiedenen Methoden ausprobiert habe.

Grob gesehen hänge ich an folgendem Punkt, bzw so würde das Programm aussehen:

Es existieren 2 LabelEdit Felder (für die Nummer und für die Textnachricht).
Darunter befindet sich ein Button.
Beim Klick auf den Button loggt sich TWebbrowser automatisch auf eine Seite ein, wo man SMS verschicken kann.
Dabei sollten die Felder im Web-Formular mit den Werten der LabelEdit ausgefüllt werden.
Wenn alle Werte eingetragen sind, soll das Formular abgesendet, bzw die SMS versendet werden (im Formular löst diesen Mechanismus ein Button aus).

So gesehen soll der Benutzer nicht mitkriegen, dass der TWebbrowser aktiv ist.

Dabei gibt es jedoch ein Problem. Es sind nicht beliebig viele SMS verfügbar. Wie viele SMS übrig sind befindet sich ebenfalls in Form eines Wertes in dem dementsprechenden Web-Formular.
Wenn nun keine SMS mehr verfügbar sind, soll eine Meldung erscheinen, dass alle SMS aufgebraucht sind.


Ich bin immernoch am überlegen wie man das vielleicht noch einfacher gestalten könnte. :gruebel:


Falls dir das noch weiterhilft: Der Anbieter dieser SMS ist Arcor. Ein Benutzernamen habe ich schon, die Anmeldung bekomme ich auch hin, da es sich dabei um ein GET-Formular handelt. Jedoch ist das Formular für die SMS-Versendung kein GET- sondern ein POST-Formular.

FreakLitkowsky 4. Jul 2008 23:18

Re: POST Formular ausfüllen + Werte ablesen
 
Hi nochmal,
also ich hab das soweit fertig bekommen, dass die Werte in die jeweiligen Felder eingetragen werden.

Aber... naja, wie man die Werte abliest... dazu habe ich eine Seite gefunden, aber ich hab den Link verschlampt und ich suche den jetzt schon fast eine Stunde :cry:
Kannst du, oder jemand anders mir schnell helfen???

Also bis jetzt hab ich das so gemacht mit den Werte eintragen:

Delphi-Quellcode:
procedure WB_FillPwdForm(WB: TWebbrowser; UsernameField, User, PasswortField, Password: string);
var
  IDoc3: IHTMLDocument3;
  Inputs: IHTMLElementCollection;
  UID, UPWD: IHTMLElement;
begin
  if Assigned(WB.Document) and
    (Succeeded(WB.Document.QueryInterface(IHTMLDocument3, IDoc3))) then
  begin
    Inputs := IDoc3.getElementsByName(UsernameField);
    if Assigned(Inputs) then
    begin
      UID := Inputs.item(0, '') as IHTMLElement;
      if Assigned(UID) then
        (UID as IHTMLInputElement).value := User;
    end;
    Inputs := IDoc3.getElementsByName(PasswortField);
    if Assigned(Inputs) then
    begin
      UPWD := Inputs.item(0, '') as IHTMLElement;
      if Assigned(UPWD) then
        (UPWD as IHTMLInputElement).value := Password;
    end;
  end;
end;

[...]

WB_FillPwdForm(Webbrowser1, 'FELDNAME1','WERT1','FELDNAME2','WERT2');

FreakLitkowsky 6. Jul 2008 18:53

Re: POST Formular ausfüllen + Werte ablesen
 
Sorry, dass ich nochmal schreibe, aber ich kann meinen vorherigen Post nicht mehr bearbeiten.

Also ich bräuchte jetzt eine Methode, dass ich mit Hilfe einer späteren Verzweigung einen den Wert eines bestimmten Feldes abfragen kann, bsp.:
(Der Name des Formular-Eingabefeld, sei es in diesem Fall ein normales Eingabefeld wird in einer String-Variable namens "FormularFeldname" gespeichert.)
Delphi-Quellcode:
IF FormularFeldname = LabeledEdit1.Text
THEN
Begin
   //Trifft zu
   ShowMessage('Das Feld hat den selben Wert wie das Einhabefeld.');
End
ELSE
Begin
   //Trifft nicht zu
   ShowMessage('Das Feld hat nicht den selben Wert wie das Einhabefeld.');
End;
Bitte helft mir. Das wäre dann der letzte Schritt in meinem Programm... :arrow:

FreakLitkowsky 10. Jul 2008 21:12

Re: POST Formular ausfüllen + Werte ablesen
 
Bitte helft mir... ich kann das Programm nicht weitermachen. Ich finde den Code nicht mehr.
:coder2:

toms 11. Jul 2008 04:58

Re: POST Formular ausfüllen + Werte ablesen
 
Hallo, zum Ausfüllen der Felder hast du ja den Code. Das Auslesen funktioniert praktisch ähnlich.

Anstatt
Delphi-Quellcode:
(UID as IHTMLInputElement).value := User;
schreibst du

Delphi-Quellcode:
IrgendeineStringVariable := (UID as IHTMLInputElement).value

FreakLitkowsky 11. Jul 2008 19:18

Re: POST Formular ausfüllen + Werte ablesen
 
:gruebel:
Danke für die Hilfe, aber ich hab das jetzt nicht ganz verstanden (tut mir leid).

Sollte ich dafür jetzt eine neue function machen oder was?
Wäre wirklich total nett von dir wenn du mir irgendein Beispiel liefern könntest :wink: .

toms 11. Jul 2008 19:32

Re: POST Formular ausfüllen + Werte ablesen
 
obige Funktion ungetestet abgeändert:

Delphi-Quellcode:
function WB_GetFieldValue(WB: TWebbrowser; FieldName: string): string;
var
  IDoc3: IHTMLDocument3;
  Inputs: IHTMLElementCollection;
  UID: IHTMLElement;
begin
  Result := '';
  if Assigned(WB.Document) and
    (Succeeded(WB.Document.QueryInterface(IHTMLDocument3, IDoc3))) then
  begin
    Inputs := IDoc3.getElementsByName(FieldName);
    if Assigned(Inputs) then
    begin
      UID := Inputs.item(0, '') as IHTMLElement;
      if Assigned(UID) then
        Result := (UID as IHTMLInputElement).value;
    end;
  end;
end;

FreakLitkowsky 11. Jul 2008 23:03

Re: POST Formular ausfüllen + Werte ablesen
 
Vielen Dank!
Hab es geprüft und funktioniert!!!

Vielen lieben Dank :dp: :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.
Seite 1 von 2  1 2      

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