Problème de WebBrowser : liens ou repertoire ????

Résolu
Encore1ben Messages postés 68 Date d'inscription jeudi 19 septembre 2002 Statut Membre Dernière intervention 22 février 2008 - 30 mars 2004 à 18:51
Encore1ben Messages postés 68 Date d'inscription jeudi 19 septembre 2002 Statut Membre Dernière intervention 22 février 2008 - 15 juil. 2004 à 12:37
Bonjour à tous !

Bon, bah voilà ! Je m'entraine actuellement un peu plus sur Delphi, et j'ai donc tenté de faire un chtit navigateur web... Jusque là, rien de bien sorcier, mais il s'avère que j'y ai ajouté une petite particuliarité. En effet, à chaque page chargée, je lance automatiquement, une fonction pour connaître le code source et qui au passage m'indique toutes les images disponibles sur cette page...

Ayant affecté l'operation au "OnDownloadBegin", cette opération ne se lance que lorsque la page est chargée, ce qui d'ailleurs fonctionne très bien ! Par contre, comme vous le savez surement, on peut aussi utiliser le composant WebBrowser pour naviguer dans son disque dur (comme sous IE, en tapant par exemple C:\Mes trucs\bidules), et à ce moment, mon application plante complètement.

Alors ma question est (oufff, po trop tôt se diront certains): Y'a t il un moyen de différencier ce qu'affiche le Webbrowser ??? Comment pourrais je savoir, si c'est du html ou si c'est des repertoires (des dossiers en fait!), me permettant de mettre une condition d'arrêt à ma fonction de recherche ????

Merci d'avance,

Bonne soirée,

Ne me frappez pas, je suis amateur (vi vi, g changé de garde).... =)

3 réponses

cs_mike255 Messages postés 120 Date d'inscription mercredi 14 août 2002 Statut Membre Dernière intervention 26 mai 2007
2 avril 2004 à 01:50
slt,

je te propose mon code suivant

Variable Globale:

IHTMLDocument2: TGUID = '{332C4425-26CB-11D0-B483-00C04FD90119}';

Fonction ContientHTML:

function TForm1.ContientHTML : boolean;
var
obj :IUnknown;
begin
  if (WebBrowser1.Document<>nil) then
    begin
    if (WebBrowser1.Document.QueryInterface(IHTMLDocument2, obj)) <> 0
      then ContientHTML:=false else ContientHTML:=true;
    end else ContientHTML:=false;
end;


Cette fonction renvoie true si le webbrowser contient un document html sinon elle renvoie false
3
cs_mike255 Messages postés 120 Date d'inscription mercredi 14 août 2002 Statut Membre Dernière intervention 26 mai 2007
2 avril 2004 à 01:57
juste une petite correction, la fonction renvoie false donc egalement lorsque qu'aucun document est chargé dans le browser donc il vaut mieux testé si document est a nil dans ton code et ensuite executer ma fonction si il ne l'est pas.
La fonction devient donc:

var
obj :IUnknown;
begin
if (WebBrowser1.Document.QueryInterface(IHTMLDocument2, obj)) <> 0
then ContientHTML:=false else ContientHTML:=true;
3
Encore1ben Messages postés 68 Date d'inscription jeudi 19 septembre 2002 Statut Membre Dernière intervention 22 février 2008
15 juil. 2004 à 12:37
Bonjour,

Excuses moi pour le retard ! je voulais te remercier, car ca marche niquel chrome...

Merci encore, c'est super !!!!

Bonne journée,

Encore1ben
0
Rejoignez-nous