Hi!
Ich habe die anderen Threads natürlich nicht übersehen. Bei dem Download Bsp. kommt bei mir immer der Fehler: VarIsEmpty nicht definiert oder so...
Deswegen hab ich es mit... (quellcode folgt) versucht, jedoch weiß ich nicht wie ich das Formular abschicken kann. Zudem kommt ein nerviges JavaSkriptFehler Popup (bei einer WebSeite, hängt nicht am Progyy, wills aber schließen lassen)...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Label1: TLabel;
Button1: TButton;
ProgressBar1: TProgressBar;
procedure WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
procedure WebBrowser1ProgressChange(Sender: TObject; Progress,
ProgressMax: Integer);
procedure Button1Click(Sender: TObject);
procedure WebBrowser1TitleChange(Sender: TObject;
const Text: WideString);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
if WebBrowser.OleObject.Document.all.tags('FORM').Len gth = 0 then
begin
Exit;
end;
for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
begin
FormItem := WebBrowser.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
begin
try
if FormItem.Item(j).Name = FieldName then
begin
FormItem.Item(j).Value := Value;
Result := True;
end;
except
Exit;
end;
end;
end;
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
FillForm(WebBrowser1, 'vorname', 'x');
FillForm(WebBrowser1, 'name', 'y');
FillForm(WebBrowser1, 'strasse', 'z');
FillForm(WebBrowser1, 'plz', '1');
FillForm(WebBrowser1, 'stadt', '2');
FillForm(WebBrowser1, 'land', '3');
FillForm(WebBrowser1, 'email', '4');
end;
procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress,
ProgressMax: Integer);
begin
if ProgressMax = 0 then
begin
Progressbar1.Position:=0;
Exit;
end;
try
if (Progress <> -1) and (Progress <= ProgressMax) then
Progressbar1.Position:= (Progress * 100) div ProgressMax
else
Progressbar1.Position:=0;
except
on EDivByZero do Exit;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Webbrowser1.Navigate('http://...');
end;
procedure TForm1.WebBrowser1TitleChange(Sender: TObject;
const Text: WideString);
begin
Caption := Webbrowser1.OleObject.Document.Title;
end;
end.
Bitte um Hilfe (am besten in den quellcode direkt reinposten, sonst verchecke ich es vielleicht noch).
Ich habe die anderen Threads natürlich nicht übersehen. Bei dem Download Bsp. kommt bei mir immer der Fehler: VarIsEmpty nicht definiert oder so...
Deswegen hab ich es mit... (quellcode folgt) versucht, jedoch weiß ich nicht wie ich das Formular abschicken kann. Zudem kommt ein nerviges JavaSkriptFehler Popup (bei einer WebSeite, hängt nicht am Progyy, wills aber schließen lassen)...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Label1: TLabel;
Button1: TButton;
ProgressBar1: TProgressBar;
procedure WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
procedure WebBrowser1ProgressChange(Sender: TObject; Progress,
ProgressMax: Integer);
procedure Button1Click(Sender: TObject);
procedure WebBrowser1TitleChange(Sender: TObject;
const Text: WideString);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
if WebBrowser.OleObject.Document.all.tags('FORM').Len gth = 0 then
begin
Exit;
end;
for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
begin
FormItem := WebBrowser.OleObject.Document.forms.Item(I);
for j := 0 to FormItem.Length - 1 do
begin
try
if FormItem.Item(j).Name = FieldName then
begin
FormItem.Item(j).Value := Value;
Result := True;
end;
except
Exit;
end;
end;
end;
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
FillForm(WebBrowser1, 'vorname', 'x');
FillForm(WebBrowser1, 'name', 'y');
FillForm(WebBrowser1, 'strasse', 'z');
FillForm(WebBrowser1, 'plz', '1');
FillForm(WebBrowser1, 'stadt', '2');
FillForm(WebBrowser1, 'land', '3');
FillForm(WebBrowser1, 'email', '4');
end;
procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress,
ProgressMax: Integer);
begin
if ProgressMax = 0 then
begin
Progressbar1.Position:=0;
Exit;
end;
try
if (Progress <> -1) and (Progress <= ProgressMax) then
Progressbar1.Position:= (Progress * 100) div ProgressMax
else
Progressbar1.Position:=0;
except
on EDivByZero do Exit;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Webbrowser1.Navigate('http://...');
end;
procedure TForm1.WebBrowser1TitleChange(Sender: TObject;
const Text: WideString);
begin
Caption := Webbrowser1.OleObject.Document.Title;
end;
end.
Bitte um Hilfe (am besten in den quellcode direkt reinposten, sonst verchecke ich es vielleicht noch).