Mozda nisam najbolje shvatio sta zelis ali formulare mozes popunit na 2 osnovna nacina:
1.Uz koristenje Indy komponenti, preciznije IdHttp
Evo ti mali primjer:
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdMultipartFormData, StdCtrls, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP;
type
TForm1 = class(TForm)
Button1: TButton;
IdHTTP1: TIdHTTP;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
M: TIdMultiPartFormDataStream;
begin
M := TIdMultiPartFormDataStream.Create;
M.AddFormField('username', 'neki_parametar');
M.AddFormField('email', 'neki_parametar');
M.AddFormField('submit', 'neki_parametar');
IdHTTP1.Post('http://StranicaKojaSadrziGoreNavedeneFormulare.com', M);
M.Free;
end;
end.
Ovo username, password i submit su imena objekata na stranici..
2.Uz pomoc TWebBrowser kontrole, i imas ove dvije JaHvram-ove funkcije:
Code:
function FillForm(WebBrowser: TWebBrowser; FieldName: String; Value: String): Boolean;
var
I, J: Integer;
FormItem: Variant;
begin
Result := False;
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
if FormItem.Item(J).Name = FieldName then
begin
FormItem.Item(J).Value := Value;
Result := True;
Exit;
end;
end;
end;
end;
function SubmitForm(WebBrowser: TWebBrowser; FieldString:string): Boolean;
var
i, j: Integer;
FormItem: Variant;
begin
Result := False;
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
if (UpperCase(FormItem.Item(j).Type) = FieldString) then
begin
FormItem.Item(j).focus;
keybd_event( Ord(' '), MapvirtualKey( Ord(' '), 0), 0, 0 );
keybd_event( Ord(' '), MapvirtualKey( Ord(' '), 0), KEYEVENTF_KEYUP, 0 );
Result := True;
end;
end;
end;
end;
Jedna popunjava formu, druga submituje...