Tbrowser capture d' url avant échange serveur [Résolu]

Signaler
Messages postés
3
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
9 novembre 2006
-
Messages postés
3
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
9 novembre 2006
-
Boujour tout le monde!
Voila je suis tout nouveau sur ce forum de programmation et j'aurais besoin d'un peut d'aide  car je seche.
En faite je voudrais creer un petit programme qui puisse lire des page internet compatible php mais qui me transmette l'url du lien avant de faire une requete au serveur sur le lien ouvert...
Je m'explique (j'essaye d'etre le plus clair possible )
 
Admettons que j'ai un compte pour un jeu en ligne.Je clique sur le lien qui me permet de pêcher un poisson!
L'adresse generée au moment du clique est du type www.nomdusite.com/peche.php?type=XX ou XX la variable contenant le type de poisson
Je voudrais intercepter le lien avant qu'il envoit les informations au serveur qui seront stockées pour pouvoir modifier la variable XX celon mes besoins!
J'ai beau faire precédent ou arreter le chargement de la page pour modifier la variable que les informations sont deja envoyées!!!
 
Donc voila un exemple pratique un peut bete je l'avoue mais il illustre bien ce que j'ai en tete.
Je m'en remet à vous pour me dire si cela est possible car je suis neophyte en delphi..
Voila merci de m'avoir lu en esperent que vous puissiez m'aider
Merci a tous!

3 réponses

Messages postés
157
Date d'inscription
dimanche 19 novembre 2000
Statut
Membre
Dernière intervention
14 avril 2009

C'est tres simple,

dans l'évenement OnBeforeNavigate2 la variable URL contien l'adresse qui devrai etre envoyée, et la valeur Cancel qui peut enmecher la navigation vers cette URL...
Par exemple la procedure suivante récupere l'url, la copie dan un TEdit (TEdit1) et annule la naviguation :

procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  Edit1.Text := URL;
  Cancel := True;
end;

Ensuite, un TButton (Button1) envoi l'adresse contenue dans le TEdit (Edit1) quand on lui clique dessu... (adresse que tu poura donc modifier avant de cliquer sur le bouton) :

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate(Edit1.Text);
end;

(ici WebBrowser1 est le nom de ton TWebBrowser)
Messages postés
157
Date d'inscription
dimanche 19 novembre 2000
Statut
Membre
Dernière intervention
14 avril 2009

A oui ^^' j'alai oublier.... pour le code dan l'évenement OnBeforeNavigate2... il faut fair en sorte de pouvoir le desactiver... pour pouvoir naviguer apres...

pour cela tu peut utiliser une variable globale

Var InterdirNav : Boolean;
{...}
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  Edit1.Text := URL;
  if InterdirNav = True then
  Begin
    InterdirNav := False;
  end Else
    Cancel := True;
end;

et pour le bouton tu met :

procedure TForm1.Button1Click(Sender: TObject);
begin
  InterdirNav := False;
  WebBrowser1.Navigate(Edit1.Text);
end;

(désolé pour cet oublie ^^')
si t'as des questions sur ce bout de code n'ésite pas a demander
Messages postés
3
Date d'inscription
jeudi 24 février 2005
Statut
Membre
Dernière intervention
9 novembre 2006

merci beaucoup de ta réponse j'espers que cela va marcher je t'enverai un message si mon prog pose probleme!
Merci beaucoup encore une fois de ta réponse