Browser.Navigate('http://lien.com'); while Browser.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages;
for i:=0 to 19 do tableau[i] :=...; Memo..... ;
{Dans l'absolue on évite de passer des objets en paramètres (Constante, Variable) dans une procédure/fonction pour des questions d'optimisation. Par exemple à la place du TMemo on utilisera donc plutot un TStringList dont le contenu sera assigné ensuite au TMemo. Pour répondre textuellement à ta demande :} function VerifVersion(MemoTest: TMemo; Browser: TWebBrowser): String; var Index,CountLinks: Integer; LinksArray: array of String; //Attention il faut penser à la maintenance de son code //De plus la page peut changer => On ne prédéfinit donc //pas la taille du tableau. begin //On récupère les données dans le TWebBrowser Browser.Navigate('http://www.google.com'); //Tant que le TWebBrowser est en phase de travail while Browser.ReadyState < READYSTATE_INTERACTIVE do //On défreeze l'application Application.ProcessMessages; //On définit le nombre de liens présent dans la page récupérée CountLinks:=Browser.OleObject.Document.links.length; //On définit la taille de son tableau SetLength(LinksArray,CountLinks-1); //Si la page contient des liens alors if CountLinks>0 Then //On parcourre le tableau. Pour chaque entrée faire for Index:=Low(LinksArray) to High(LinksArray)-1 Do Begin //On récupère le lien numéro Index et on le place à la position Index dans le tableau LinksArray[index]:=Browser.OleObject.Document.links.item(index).href; //On rajoute le lien récupéré précédemment dans le MemoTest MemoTest.Lines.Add(LinksArray[index]); End; end; procedure TForm1.Button1Click(Sender: TObject); begin //On appelle lafonction VerifVersion VerifVersion(Memo1,WebBrowser1); end;
Access violation at address 004D3E61 in module 'Launch.exe'. Read of address 00000000'
function VerifVersion(MemoTest: TMemo; Browser: TWebBrowser): String; var Index,CountLinks: Integer; LinksArray: array of String; //Attention il faut penser à la maintenance de son code //De plus la page peut changer => On ne prédéfinit donc //pas la taille du tableau. begin //On récupère les données dans le TWebBrowser Browser.Navigate('http://www.google.com'); //Tant que le TWebBrowser est en phase de travail while Browser.ReadyState < READYSTATE_INTERACTIVE do //On défreeze l'application Application.ProcessMessages; //On définit le nombre de liens présent dans la page récupérée CountLinks:=Browser.OleObject.Document.links.length; //On définit la taille de son tableau SetLength(LinksArray,CountLinks); //Si la page contient des liens alors if CountLinks>0 Then //On parcourre le tableau. Pour chaque entrée faire for Index:=Low(LinksArray) to High(LinksArray) Do Begin //On récupère le lien numéro Index et on le place à la position Index dans le tableau LinksArray[index]:=Browser.OleObject.Document.links.item(index).href; //On rajoute le lien récupéré précédemment dans le MemoTest MemoTest.Lines.Add(LinksArray[index]); End; end; procedure TForm1.Button1Click(Sender: TObject); begin //On appelle lafonction VerifVersion VerifVersion(Memo1,WebBrowser1); end;