Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD10] Touche F1 pour appel aide

4 réponses
Avatar
Laurent Petr
Bonjour,

Je souhaite ouvrir une fenêtre d'aide lors de l'appui sur la touche F1.
Pour cela je souhaiterais ne pas avoir a entrer un code dans chaque fenêtre.

J'ai essayé une solution qui ne fonctionne pas complètement.
J'ai inséré le code :

gnToucheF1 est un entier
gnToucheF1=Evénement("toucheF1", "*.*",257)

Dans le code d'initialisation du projet (le problème est le même en le
mettant dans le code d'initialisation de la première fenêtre du projet).
(Si je mets 112 à la place de 257 dans la fonction Evénement, rien ne se
passe.)

Et j'ai créé une procédure globale :

PROCEDURE toucheF1(Message, wParam, lParam)
SI wParam=112 ALORS
WHelp("monfichieraide.chm")
FIN


Cela fonctionne bien avec les fenêtre non MDI, mais avec les fenêtres
MDI, la fenêtre d'aide s'ouvre mais reste vide et on est obligé de
fermer le logiciel qui ne répond plus.
J'ai essayé en créant un nouveau projet et ça fonctionne avec toutes les
fenêtres. Je n'ai donc rien pu obtenir du support technique gratuit.

Pouvez-vous m'aider à corriger ce code ou trouver une autre solution
technique qui fonctionne mieux ?

Merci
Laurent

4 réponses

Avatar
STASZEWSKI André
Bonsoir

0 - Supprimez votre procédure et votre événement.

1 - créer une procédure globale au projet

PROCEDURE Ouvre_Aide()

VK_F1 est un entier = 0x70

Touche est un entier = VK_F1 // Touche F1

// Vérifie si la touche F1 a changé d'état depuis le dernier appui

SI ToucheEnfoncée(Touche) ALORS

// Insérer ici le traitement à effectuer (exemple:)

WHelp("monfichieraide.chm")


FIN

2 - Dans cette procédure globale, cliquer sur l'icone " 1:30" situé à droite
dans le bandeau (une fenêtre s'ouvre)
3 - Cocher "Initialisation automatique après le code d'initialisation du
projet
4 - Sélectionner "Infini" et "Imédiatement"

Cliquer sur OK, voilà, le tour est joué !

--
Cordialement,
André STASZEWSKI
(Gratuit) Photo Visu 3.1 sur www.PlaneteDev.fr.st
Pour me contacter cliquez ici : http://cerbermail.com/?OT0Wnwyzph

"Laurent Petr" a écrit dans le message de news:
447da08e$0$27293$
Bonjour,

Je souhaite ouvrir une fenêtre d'aide lors de l'appui sur la touche F1.
Pour cela je souhaiterais ne pas avoir a entrer un code dans chaque


fenêtre.

J'ai essayé une solution qui ne fonctionne pas complètement.
J'ai inséré le code :

gnToucheF1 est un entier
gnToucheF1=Evénement("toucheF1", "*.*",257)

Dans le code d'initialisation du projet (le problème est le même en le
mettant dans le code d'initialisation de la première fenêtre du projet).
(Si je mets 112 à la place de 257 dans la fonction Evénement, rien ne se
passe.)

Et j'ai créé une procédure globale :

PROCEDURE toucheF1(Message, wParam, lParam)
SI wParam2 ALORS
WHelp("monfichieraide.chm")
FIN


Cela fonctionne bien avec les fenêtre non MDI, mais avec les fenêtres
MDI, la fenêtre d'aide s'ouvre mais reste vide et on est obligé de
fermer le logiciel qui ne répond plus.
J'ai essayé en créant un nouveau projet et ça fonctionne avec toutes les
fenêtres. Je n'ai donc rien pu obtenir du support technique gratuit.

Pouvez-vous m'aider à corriger ce code ou trouver une autre solution
technique qui fonctionne mieux ?

Merci
Laurent


Avatar
Laurent Petr
STASZEWSKI André wrote:
Bonsoir

0 - Supprimez votre procédure et votre événement.

1 - créer une procédure globale au projet

PROCEDURE Ouvre_Aide()

VK_F1 est un entier = 0x70

Touche est un entier = VK_F1 // Touche F1

// Vérifie si la touche F1 a changé d'état depuis le dernier appui

SI ToucheEnfoncée(Touche) ALORS

// Insérer ici le traitement à effectuer (exemple:)

WHelp("monfichieraide.chm")


FIN

2 - Dans cette procédure globale, cliquer sur l'icone " 1:30" situé à droite
dans le bandeau (une fenêtre s'ouvre)
3 - Cocher "Initialisation automatique après le code d'initialisation du
projet
4 - Sélectionner "Infini" et "Imédiatement"

Cliquer sur OK, voilà, le tour est joué !





Rien ne se passe lorsque j'appuis sur F1.

Cela fonctionne-t-il dans l'environnement de développement ? ou
uniquement une fois l'exécutable créé et installé ?

Laurent
Avatar
jacques trepp
Laurent Petr a écrit :
STASZEWSKI André wrote:

Bonsoir

0 - Supprimez votre procédure et votre événement.

1 - créer une procédure globale au projet

PROCEDURE Ouvre_Aide()

VK_F1 est un entier = 0x70

Touche est un entier = VK_F1 // Touche F1

// Vérifie si la touche F1 a changé d'état depuis le dernier appui

SI ToucheEnfoncée(Touche) ALORS

// Insérer ici le traitement à effectuer (exemple:)

WHelp("monfichieraide.chm")


FIN

2 - Dans cette procédure globale, cliquer sur l'icone " 1:30" situé à
droite
dans le bandeau (une fenêtre s'ouvre)
3 - Cocher "Initialisation automatique après le code d'initialisation du
projet
4 - Sélectionner "Infini" et "Imédiatement"

Cliquer sur OK, voilà, le tour est joué !





Rien ne se passe lorsque j'appuis sur F1.

Cela fonctionne-t-il dans l'environnement de développement ? ou
uniquement une fois l'exécutable créé et installé ?

Laurent



si, si, ça fonctionne très bien. Je n'avais pas de fichier d'aide, mais
j'ai mis à la place un LanceAppliAssociée("monimage.jpg").
Je n'ai pas trouvé l'icone "1:30", mais un clic droit + propriétés de
cocher les options.
ça marche même en mode test.

Merci pour ce tuyau.





--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com
Avatar
Laurent Petr
> si, si, ça fonctionne très bien. Je n'avais pas de fichier d'aide, mais
j'ai mis à la place un LanceAppliAssociée("monimage.jpg").
Je n'ai pas trouvé l'icone "1:30", mais un clic droit + propriétés de
cocher les options.
ça marche même en mode test.

Merci pour ce tuyau.



Pour moi cela fonctionne avec une fonction info(), par exemple, mais pas
pour l'ouverture de l'aide.
Mais je pense qu'il doit y avoir une "merde" dans mon projet.

Laurent