Einzelnen Beitrag anzeigen

Thomas G.

Registriert seit: 19. Feb 2005
6 Beiträge
 
#3

Re: Selectfelder mit TWebBrowser ansprechen ?

  Alt 19. Feb 2005, 17:54
Hi toms,

das sieht ja schon mal sehr vielversprechend aus. Allerdings funktioniert es bei einem ersten Test bei mir noch nicht richtig, vielleicht weißt du ja was ich falsch mache.

Implementierung:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, MSHTML,
  StdCtrls, SHDocVw, OleCtrls;

function ReadSelectValue(Webbrowser:TWebBrowser;Selectname:String):String;

implementation


function ReadSelectValue(Webbrowser:TWebBrowser;Selectname:String):String;
var
  Document: IHTMLDocument2;
  edTest: IHTMLSelectElement;
begin
// Referenz auf Dokument
  if Supports(WebBrowser.Document, IHTMLDocument2, Document) then
  begin
    // Referenz auf Eingabe-Control-Element
    if Supports(Document.all.item(Selectname, 0),
      IHTMLSelectElement, edTest) then
    begin
      // Aktuellen Wert auslesen
      Result:=edTest.value;
      // Neuen Wert setzen
      //edTest.value:= 'NineBerry is Great!';
    end
    else
    begin
      ShowMessage('Element mit dem Namen "'+Selectname+'" existiert ' +
        'nicht oder ist kein Select-Element!');
      Result:='NIL';
    end;
  end
  else
  begin
    ShowMessage('Kein HTML-Dokument geladen!');
    Result:='NIL';
  end;
end;
Als Testbeispiel habe ich die die Selectfelder von der Web.de-Registrierungsseite benutzt ( https://user02.web.de/Registrierung/...email@register ) und wollte nun den Wert eines dieser Selectfelder ("cf_land") mit folgender Anweisung auslesen:


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 showmessage(ReadSelectValue(WebBrowser1,'cf_land'));
end;

Ausgeben tut er mir daraufhin jedoch nur eine leere Messagebox, gefunden haben muss er das entsprechende Selectfeld jedoch, sonst hätte er eine entsprechende Fehlermeldung zurückgegeben.
  Mit Zitat antworten Zitat