Focus sur une DBGrid après un TWebBrowser avec un click

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 27 juil. 2007 à 12:45
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 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.

Quelqu' un sait comment remédier à cela?
A+

6 réponses

dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
27 juil. 2007 à 14:16
Bonjour,
J'ai eu le souci, comme parade, j'avais trouvé , aprés le chargement de la page  je redonnais le focus a autre chose ...

procedure TFHistoVarchar.WebBrowser1PropertyChange(Sender: TObject;
  const szProperty: WideString);
begin


if WebBrowser1.Busy=false then




OleContainer1.SetFocus;
end;

Je sais , c'est de la bidouille ...
Si il y a des solutions plus élégantes, je suis preneur ...
Dom
0
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
27 juil. 2007 à 14:44
Le problème est que l' utilisateur peut redonner le focus au TWebBrowser quand il veut après que la page soit chargée ...

Attendons de voir si qqu' un a une solution?!
A+
0
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
27 juil. 2007 à 17:17
0
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
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+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
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;
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
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..
@+

cantador
0
Rejoignez-nous