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.