unit WebControl;
interface
uses
Windows, SysUtils, Graphics, Dialogs, Classes,
EmbeddedWB, MSHTML_TLB, SHDocVw_TLB, OleCtrls;
// Editfeld
function ReadEditValue(Webbrowser:TEmbeddedWB;Editname:
String):
String;
procedure SetEditValue(Webbrowser:TEmbeddedWB;Editname,Value:
String);
// Radiobutton
function ReadRadioValue(Webbrowser:TEmbeddedWB;Radioname:
String):
String;
procedure SetRadioStatus(Webbrowser:TEmbeddedWB;Radioname,Value:
String;SetValue:Boolean);
// Checkbox
function ReadCheckboxValue(Webbrowser:TEmbeddedWB;Checkboxname:
String):
String;
function ReadCheckboxStatus(Webbrowser:TEmbeddedWB;Checkboxname:
String):Boolean;
procedure SetCheckboxStatus(Webbrowser:TEmbeddedWB;Checkboxname:
String;Status:Boolean);
// Select
function ReadSelectValue(Webbrowser:TEmbeddedWB;Selectname:
String):
String;
procedure SetSelectValue(Webbrowser:TEmbeddedWB;Selectname,SelectValue:
String);
implementation
function ReadEditValue(Webbrowser:TEmbeddedWB;Editname:
String):
String;
var
Document: IHTMLDocument2;
edTest: IHTMLInputTextElement;
begin
// Referenz auf Dokument
if Supports(WebBrowser.Document, IHTMLDocument2, Document)
then
begin
// Referenz auf Eingabe-Control-Element
if Supports(Document.all.item(Editname, 0),
IHTMLInputTextElement, edTest)
then
begin
// Aktuellen Wert auslesen
Result:=(edTest.value);
end
else
begin
ShowMessage('
Element mit dem Namen "'+Editname+'
" existiert ' +
'
nicht oder ist kein Text-Input-Element!');
Result:='
NIL';
end;
end
else
begin
ShowMessage('
Kein HTML-Dokument geladen!');
Result:='
NIL';
end;
end;
procedure SetEditValue(Webbrowser:TEmbeddedWB;Editname,Value:
String);
var
Document: IHTMLDocument2;
edTest: IHTMLInputTextElement;
begin
// Referenz auf Dokument
if Supports(WebBrowser.Document, IHTMLDocument2, Document)
then
begin
// Referenz auf Eingabe-Control-Element
if Supports(Document.all.item(Editname, 0),
IHTMLInputTextElement, edTest)
then
begin
// Neuen Wert setzen
edTest.value:= Value;
end else begin
ShowMessage('
Element mit dem Namen "'+Editname+'
" existiert ' +'
nicht oder ist kein Text-Input-Element!');
end;
end else begin
ShowMessage('
Kein HTML-Dokument geladen!');
end;
end;
// Wert den das RadioButton besitzt zurückgeben
function ReadRadioValue(Webbrowser:TEmbeddedWB;Radioname:
String):
String;
var
Document: IHTMLDocument2;
rbTestList: IHTMLElementCollection;
rbTest: IHTMLOptionButtonElement;
I: Integer;
begin
// Referenz auf Dokument
if Supports(WebBrowser.Document, IHTMLDocument2, Document)
then
begin
// Referenz auf Eingabe-Control-Element
if Supports(Document.all.item(Radioname, EmptyParam),
IHTMLElementCollection, rbTestList)
then
begin
// Aktuellen Wert auslesen
for I:= 0
to rbTestList.length - 1
do
begin
// Referenz auf i. RadioButton
if Supports(rbTestList.item(I, EmptyParam),
IHTMLOptionButtonElement, rbTest)
then
begin
// Anzeigen, wenn dieser RadioButton ausgewählt
if rbTest.checked
then Result:=rbTest.value;
// ShowMessageFmt('Der RadioButton mit dem Wert %s' +
// ' ist ausgewählt!', [rbTest.value]);
end
else
begin
ShowMessage('
Element, das "'+Radioname+'
" heißt, ' +
'
aber weder RadioButton, noch CheckBox ist!"');
Result:='
NIL';
end;
end;
end
else
begin
ShowMessage('
Es muss mindestens ein Element mit dem Namen "' +Radioname+
'
" existieren!');
Result:='
NIL';
end;
end
else
begin
ShowMessage('
Kein HTML-Dokument geladen!');
Result:='
NIL';
end;
end;
// Radiobutton der zu der Gruppe "Radioname" gehört und den Wert
// "Value" den Boolean Status "SetValue" geben
procedure SetRadioStatus(Webbrowser:TEmbeddedWB;Radioname,Value:
String;SetValue:Boolean);
var
Document: IHTMLDocument2;
rbTestList: IHTMLElementCollection;
rbTest: IHTMLOptionButtonElement;
I: Integer;
begin
// Referenz auf Dokument
if Supports(WebBrowser.Document, IHTMLDocument2, Document)
then
begin
// Referenz auf Eingabe-Control-Element
if Supports(Document.all.item(Radioname, EmptyParam),
IHTMLElementCollection, rbTestList)
then
begin
// Aktuellen Wert auslesen
for I:= 0
to rbTestList.length - 1
do
begin
// Referenz auf i. RadioButton
if Supports(rbTestList.item(I, EmptyParam),
IHTMLOptionButtonElement, rbTest)
then
begin
// Anzeigen, wenn dieser RadioButton ausgewählt
//if rbTest.checked then Result:=rbTest.value;
end
else
begin
ShowMessage('
Element, das "'+Radioname+'
" heißt, ' +
'
aber weder RadioButton, noch CheckBox ist!"');
end;
end;
// Neuen Wert setzen
for I:= 0
to rbTestList.length - 1
do
begin
// Referenz auf i. RadioButton
if Supports(rbTestList.item(I, EmptyParam),
IHTMLOptionButtonElement, rbTest)
then
begin
// Wir möchten den RadioButton mit dem Wert "3" aktivieren
if rbTest.value = Value
then
rbTest.checked:= SetValue;
end;
end;
end
else
begin
ShowMessage('
Es muss mindestens ein Element mit dem Namen "' +Radioname+
'
" existieren!');
end;
end
else
begin
ShowMessage('
Kein HTML-Dokument geladen!');
end;
end;
function ReadCheckboxValue(Webbrowser:TEmbeddedWB;Checkboxname:
String):
String;
var
Document: IHTMLDocument2;
CheckboxTest: IHTMLOptionButtonElement;
begin
// Referenz auf Dokument
if Supports(WebBrowser.Document, IHTMLDocument2, Document)
then
begin
// Referenz auf Eingabe-Control-Element
if Supports(Document.all.item(Checkboxname, 0),
IHTMLOptionButtonElement, CheckboxTest)
then
begin
// Aktuellen Wert auslesen
Result:=CheckboxTest.value;
//If CheckboxTest.status=true then Showmessage('True') else
Showmessage('
False');
//ShowMessage(CheckboxTest.status);
end
else
begin
ShowMessage('
Element mit dem Namen "'+Checkboxname+'
" existiert' +
'
nicht oder ist kein Checkbox-Input-Element!');
Result:='
NIL';
end;
end
else
begin
ShowMessage('
Kein HTML-Dokument geladen!');
Result:='
NIL';
end;
end;
function ReadCheckboxStatus(Webbrowser:TEmbeddedWB;Checkboxname:
String):Boolean;
var
Document: IHTMLDocument2;
CheckboxTest: IHTMLOptionButtonElement;
begin
Result:=False;
// Referenz auf Dokument
if Supports(WebBrowser.Document, IHTMLDocument2, Document)
then
begin
// Referenz auf Eingabe-Control-Element
if Supports(Document.all.item(Checkboxname, 0),
IHTMLOptionButtonElement, CheckboxTest)
then
begin
// Aktuellen Wert auslesen
Result:=CheckboxTest.status;
end
else
begin
ShowMessage('
Element mit dem Namen "'+Checkboxname+'
" existiert' +
'
nicht oder ist kein Checkbox-Input-Element!');
end;
end
else
begin
ShowMessage('
Kein HTML-Dokument geladen!');
end;
end;
procedure SetCheckboxStatus(Webbrowser:TEmbeddedWB;Checkboxname:
String;Status:Boolean);
var
Document: IHTMLDocument2;
CheckboxTest: IHTMLOptionButtonElement;
begin
// Referenz auf Dokument
if Supports(WebBrowser.Document, IHTMLDocument2, Document)
then
begin
// Referenz auf Eingabe-Control-Element
if Supports(Document.all.item(Checkboxname, 0),
IHTMLOptionButtonElement, CheckboxTest)
then
begin
CheckboxTest.status:=Status;
end
else
begin
ShowMessage('
Element mit dem Namen "'+Checkboxname+'
" existiert' +
'
nicht oder ist kein Checkbox-Input-Element!');
end;
end
else
begin
ShowMessage('
Kein HTML-Dokument geladen!');
end;
end;
function ReadSelectValue(Webbrowser:TEmbeddedWB;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;
procedure SetSelectValue(Webbrowser:TEmbeddedWB;Selectname,SelectValue:
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
// Neuen Wert setzen
edTest.value:= SelectValue;
end
else
begin
ShowMessage('
Element mit dem Namen "'+Selectname+'
" existiert ' +
'
nicht oder ist kein Select-Element!');
end;
end
else
begin
ShowMessage('
Kein HTML-Dokument geladen!');
end;
end;