Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Quand on clique sur un champ de saisie dans une datawindow et que celui-ci n'a pas déjà le focus le curseur de saisie de texte se place en début de champ.
J'ai une demande de la part d'un client qui voudrait que quand ils cliquent sur un champ de saisie le curseur de saisie se place à l'endroit où l'utilisateur a cliqué.
J'ai avec un SetCurPos de l'API Win32, le curseur se positionne bien à l'écran mais pour PB le curseur est toujours en début de champ donc pas bon.
J'ai essayé avec un mouse_event de l'API Win32 pour simuler un second clic mais alors PB l'interprète comme un double clic et le texte est sélectionné
J'ai ajouté un timer/sleep pour mettre un délais sur ce second clic mais la solution ne convient pas car cela provoque une attente avant que le curseur se positionne au bon endroit.
D'autres idées ?
Merci par avance
Hors ligne
Bonjour,
Ca m'a l'air un peu "tricky" vu que le clic au niveau PB correspond grosso-modo à une prise de focus du champ.
Cela dit, tu as essayé de regarder au niveau de xpos et ypos de l'événement clicked de la DW ?
Hors ligne
Salut,
Dans quelle version de powerbuilder es tu.
Je viens de refaire un test avec PB10 et le comportement est le suivant :
Pour ce qui concerne les champs texte le curseur se positionne à l'endroit ou l'utilisateur à clicqué et non au début de la colonne.
Pour ce qui concerne les champs numérique le curseur se positionne au début c'est vrai mais tu peut mettre le code suivant dans l'evt cliked
this.selecttext( this.position( ) , 0)
Cdt
Yanis
Hors ligne
Il faudrait voir aussi si il n'y a pas un effet de bord d'un setfocus() quelque part, par exemple dans un activate()
Hors ligne
Je suis en PB 12.5.2
Pour être sûr j'ai aussi essayé sur une datawindow qui n'avait aucun code derrière dans les events et j'ai le même résultat.
Le coup du selectText ne fonctionne pas (merci quand même pour la suggestion)
Le xpos et ypos je les ai utilisé pour le setCurPos
Disons que pour le moment ce n'est pas quelque chose de prioritaire pour nous
Merci à ceux qui ont pris le temps de lire et si vous avez d'autres idées je suis preneur.
Hors ligne