Focus sur une DBGrid après un TWebBrowser avec un click
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 2014
-
27 juil. 2007 à 12:45
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
30 juil. 2007 à 22:05
Salut à tous,
après avoir mis le focus sur un TwebBrowser avec une page chargée, il est impossible de cliquer sur un DBGrid qui est sur la même TForm alors que l' on peut cliquer sur un TButton par exemple.
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 27 juil. 2007 à 18:07
Je ne vois pas en quoi ce link peut nous aider mais j' ai reussit à comprendre ce qui se passe:
En chargeant une page, le TWebBrowser a le focus, l' événement TWebBrowser.OnEnter est appelé.
Lorsque l' on sort du TWebBrowser vers la DBGrid, l' événement TWebBrowser.OnExit est appelé.
Si on clique maintenant sur le TWebBrowser, celui ne provoque pas l' événement TWebBrowser.OnEnter car le focus n' est pas tout a fait sorti de la DBGRid, pour preuve, la roue de la souris fait bouger la DBGrid.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 27 juil. 2007 à 18:23
Je propose une solution utilisable tout de suite, mais il faudra trouver quelque chose de mieux:
procedure TFrmPrin.MyDBGridMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if ActiveControl = MyDBGrid
then
if not DBGridEnv.Focused // Ici on controle si le focus n' est pas sur le TWebBrowser para hasard ...
then begin
TreeV.SetFocus; // Obliger à donner le focus à un autre TWincontrol pour pouvoir revenir sur notre DBGrid !!!
MyDBGrid.SetFocus;
end;
end;
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 30 juil. 2007 à 22:05
Salut à toi Mauricio,
Dans SDK windows, j'ai trouvé ça :
The WM_KILLFOCUS message is sent to a window immediately before it loses the keyboard focus.
WM_KILLFOCUS
hwndGetFocus = (HWND) wParam; // handle of window receiving focus
Parameters
hwndGetFocus
Value of wParam. Identifies the window that receives the keyboard focus (may be NULL).
Return Values
An application should return zero if it processes this message.
Remarks
If an application is displaying a caret, the caret should be destroyed at this point.
See Also
SetFocus, WM_SETFOCUS
Peur-être y a t-il une solution pour transmettre ce message pour tuer le focus ?
c'est une piste mais je n'ai pas tester..
@+