Tbrowser capture d' url avant échange serveur

artaheranthares Messages postés 3 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 9 novembre 2006 - 20 mai 2006 à 14:06
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009 - 21 mai 2006 à 18:00
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!

2 réponses

flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
21 mai 2006 à 17:48
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)
0
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
21 mai 2006 à 18:00
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
0
Rejoignez-nous