je viens d'avoir une idée, elle s'avere bonne :)
j'utilise 2 composants suplémentaire :
- TdbpMouser (disponibles dans mes sources ou sur mon site)
- THookMouse (disponible ici http://diabloporc.free.fr/delphi/hooks/)
puis voici la demo :
http://diabloporc.free.fr/delphi/demos/webbrowser_noclic.zip
j'explique pour ceux ki ne vont pas telecharger :
>avec mon compo, j'ajoute les propriété OnMouseEnter, OnMouseLeave (tres utile non ?), puis je cree une var "dessus: boolean".
>sur ma form, je pose un TWebBrowser, une checkbox, une listbox, un tpopupmenu, le hookmouse et mon compo.
>je mets le popupmenu (avec ou pas un menuitem) sur la listbox(avec ou pas des items) pour verif ke le clic droit est possible hors webbrowser.
>dans mon compo, evenement OnMouseEnter :
dessus := true;
cb.checked := dessus;
>dans mon compo, evenement onMouseLeave :
dessus := false;
cb.checked := dessus;
> le hookmouse est enabled, puis evenement OnMouseUp :
hm.StopMessage := false;
>hookmouse, evenement OnMouseDown :
hm.StopMessage := (button=mbright) and (dessus);
resultat : quand la souris est dans le webbrowser, "dessus" vaut true. si on clic droit, le hook verifie qu'on est dans le webrowser et le ke bouton est bien le droit, si TRUE alors il bloke le message (celui d'envoyer un clic droit au webbrowser), si je sors du webbrowser, dessus vaut false, je clic droit sur ma listbox, le hook verifie idem et laisse le clic droit passer sur ma listbox : le menu s'affiche
point faible : 2 compos et une DLL de hook a utiliser
point fort : ça marche :D
N'oubliez pas de cliquer sur
Réponse acceptée lorsque
ma réponse vous convient !

-------------------------------------------
[ Lien ] : mon site refait ! Delphi power !