|
| Modifier le Curseur Souris de tous les Champs de Saisie |
| Iniciado por toph1971, 22,may. 2020 10:46 - 4 respuestas |
| |
| | | |
|
| |
Miembro registrado 21 mensajes |
|
| Publicado el 22,mayo 2020 - 10:46 |
Bonjour,
Historiquement mon application a un curseur différent du standard pour tous les champs de saisie (idem pour les boutons, les listes, ...). Ce curseur est modifiée directement via la fenêtre Description du champ UI/Curseur.
J'ai tenté plusieurs solutions sans succès : - utilisation de SaisieCurseur(""). La doc stipule que la fonction n'a pas d'effet si la propriété ..CurseurSouris, a été modifiée (par programmation ?). Mais cela ne fonctionne que si au départ la propriété est fixée à Standard - modification du curseur par programmation avec EnumChamp mais j'ai beaucoup d'onglets de sous champs et l'énumération n'est pas récursive ... donc solution insatifaisante - la propriété Curseur ne peut pas être définie dans un style ...
Si quelqu'un a une solution miracle qui m'éviterait de modifier à la main les milliers de champs ...
Merci d'avance |
| |
| |
| | | |
|
| | |
| |
| Publicado el 22,mayo 2020 - 11:28 |
Monsieur TOPH avait énoncé :
Bonjour,
Historiquement mon application a un curseur différent du standard pour tous les champs de saisie (idem pour les boutons, les listes, ...). Ce curseur est modifiée directement via la fenêtre Description du champ UI/Curseur.
J'ai tenté plusieurs solutions sans succès : - utilisation de SaisieCurseur(""). La doc stipule que la fonction n'a pas d'effet si la propriété ..CurseurSouris, a été modifiée (par programmation ?). Mais cela ne fonctionne que si au départ la propriété est fixée à Standard - modification du curseur par programmation avec EnumChamp mais j'ai beaucoup d'onglets de sous champs et l'énumération n'est pas récursive ... donc solution insatifaisante - la propriété Curseur ne peut pas être définie dans un style ...
Si quelqu'un a une solution miracle qui m'éviterait de modifier à la main les milliers de champs ...
Merci d'avance
bonjour,
voila une piste.
dans l'init de la fenêtre faire ceci : //WM_MOUSEMOVE = 512 Evénement(MouseMove, "F_Fenêtre1.*", WM_MOUSEMOVE)
// proc locale à la fenêtre PROCEDURE MouseMove(Message, wParam, lParam)
szNameField est une chaîne = ChampSurvol()
QUAND EXCEPTION DANS WL.Trace(szNameField + " : " + {szNameField}..Type) FAIRE WL.Trace(szNameField) FIN
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 151 mensajes |
|
| Publicado el 22,mayo 2020 - 17:08 |
Evenement(MouseCursor, Fenêtre, WM_SETCURSOR)
FUNCTION MouseCursor() nRet is system int = API(USER32, "SetCursor", API(USER32, "LoadCursorFramFileA", FullPathToCurFile.cur) result nRet
-- Patrice Terrier www.zapsolution.com |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 21 mensajes |
|
| Publicado el 25,mayo 2020 - 10:45 |
Merci pour vos retours. J'espérai une solution miracle sans rentrer dans le code de chaque fenêtre ....  |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 25,mayo 2020 - 11:35 |
Monsieur TOPH a écrit :
J'espérai une solution miracle sans rentrer dans le code de chaque fenêtre ....
Eventuellement tu peux tenter une compilation dynamique lors de l'initialisation du projet, du style :
FONCTION ModifCurseur() : booléen sNomFenêtre est chaîne sMasqueCommande est chaîne sCommande est chaîne
sMasqueCommande=[ Evenement(MouseCursor, %1, WM_SETCURSOR) ]
sNomFenêtre=EnumèreElémen(enumFenêtre) TANT QUE sNomFenêtre <>"" sCommande=ChaîneConstruit(sMasqueCommande,sNomFenêtre) Compile("ChangerCurseur",sCommande) sMasqueCommande=[ Evenement(MouseCursor, %1, WM_SETCURSOR) ] sNomFenêtre=EnumèreElément() FIN RENVOYER Vrai
CAS ERREUR : ErreurConstruit("Erreur dans le processus de changement de curseur de la souris",ErreurInfo()) RENVOYER Faux
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | | | |
| | |
|