Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 25-07-2014 09:37:43

_francois_  
Bienfaiteur du site
Lieu: TOULOUSE
Date d'inscription: 25-03-2010
Messages: 151
Pépites: 178,983,268,111
Banque: 9,223,372,036,854,776,000

Définir la position du curseur au clic

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

 

#2 25-07-2014 13:56:44

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Définir la position du curseur au clic

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 ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 25-07-2014 14:18:53

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: Définir la position du curseur au clic

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
                 

Code: pb

 this.selecttext(  this.position( ) , 0) 

         


Cdt
Yanis

Hors ligne

 

#4 25-07-2014 14:22:23

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: Définir la position du curseur au clic

Il faudrait voir aussi si il n'y a pas un effet de bord d'un setfocus() quelque part, par exemple dans un activate()


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#5 28-07-2014 08:08:01

_francois_  
Bienfaiteur du site
Lieu: TOULOUSE
Date d'inscription: 25-03-2010
Messages: 151
Pépites: 178,983,268,111
Banque: 9,223,372,036,854,776,000

Re: Définir la position du curseur au clic

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

 

Pied de page des forums

Propulsé par FluxBB 1.2.22