Hello !
![]()
Je voudrais mettre le focus de mon appli sur un élément d'un menu déroulant au démarrage .Comment fait-on cela ?
Merci pour toutes vos suggestions.
![]()
Hello !
![]()
Je voudrais mettre le focus de mon appli sur un élément d'un menu déroulant au démarrage .Comment fait-on cela ?
Merci pour toutes vos suggestions.
![]()
Si j'ai bien compris ce que tu veux, je crois que tu peux pas le faire facilement
Seul un contrôle fenêtré (descendant de TWinControl) peut recevoir le focus (c'est à dire devenir l'élément actif de la fiche), soit en appelant sa méthode moncontrole.SetFocus soit en utilisant la méthode de la fiche FocusControl(moncontrole). Or les menus (TMenuItem) ne descendent pas de TWinControl et n'ont donc pas la méthode SetFocus...
Il te faut ruser et simuler l'appui de touches sur le clavier, dans ton application, comme si l'utilisateur utilisait le clavier pour se balader dans les menus.
Cette simulation doit intervenir dans le FormActivate et pas le FormShow.
Dans l'exemple ci-dessous ma fiche a un menu avec trois sous-menus. Au démarrage de mon appli, on est positionné sur le le second sous-menu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 procedure TForm1.FormActivate(Sender: TObject); begin // 1. simule l'enfoncement de F10 pour activer le menu keybd_event(VK_F10, 0, 0, 0); // ne pas oublier de simuler le relâchement de la touche !!!!! keybd_event(VK_F10, 0, KEYEVENTF_KEYUP, 0); // 2. simule l'appui le F pour accéder au menu 'Fichiers' // on est donc positionné sur le 1er sous-menu du menu Fichiers Keybd_event(VKKeyScan('F'),0,0,0); Keybd_event(VKKeyScan('F'),0,KEYEVENTF_KEYUP,0); // 3. simule l'enfoncement de flèche vers le bas // on descend donc sur le 2nd sous-menu keybd_event(VK_DOWN, 0, 0, 0); keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0); end;
![]()
![]()
Merci pour tes indications: elles vont m'être très utiles.
![]()
@+
8)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager