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 31-10-2007 11:19:51

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

[RESOLU] CommandButton

Bonjour,

Je cherche à provoquer l'évènement "clicked" d'un "CommandButton" lorsqu'il a le focus et que l'on presse une des touches "Enter".

Pour cela j'ai voulu ajouter un "event" (pbm_keydown) avec un "TriggerEvent(Clicked!)", cela fonctionne bien lors du "Run" ou du "Debug".
La compilation est ok. Par contre lorsque je veux faire un "Deploy" => Violent plantage, l'appli se ferme sans plus d'explication.
Et après, une migration est nécessaire pour pouvoir ouvrir les DW dans l'environement de dèv.

Quelqu'un a t'il une explication ?

Merci

Dernière modification par cdtit (31-10-2007 13:35:27)


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#2 31-10-2007 11:25:23

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] CommandButton

Bonjour,

On peut voir le code de ton événement pbm_keydown?

Tu es sous quelle version PB, avec quel SGBD et sous quel OS?


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 31-10-2007 12:49:42

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: [RESOLU] CommandButton

Dans Event ue_valide(keycode key, unsignedlong keyflags) returns long [pbm_keydown]
( user event de type "Event ID = pbm_keydown") , d'un commandbutton

Code: pb

if KeyDown(KeyEnter!) then this.TriggerEvent(Clicked!)


PB 10.5 build 4523, DB2 V7, W2K server.


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#4 31-10-2007 12:56:19

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] CommandButton

c'est quoi avoir le focus ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 31-10-2007 13:02:04

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: [RESOLU] CommandButton

Par avoir le focus, c'est peut-être pas le terme exact, j'entendais :

"TabOrder specifies the order in which the control will receive focus when the user tabs among controls within a window. Setting the TabOrder for a control to 0 means that the control cannot be tabbed to."

Donc la possibilité de clicker un boutton par le clavier quand on se déplace dans l'écran par la touche "tab"


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#6 31-10-2007 13:07:21

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] CommandButton

tu ne peux pas detecter, au moment ou le tab se trouve sur le bouton, de quel bouton il s'agit et mettre ce bouton par defaut ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 31-10-2007 13:13:08

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [RESOLU] CommandButton

Tu dois absolument utiliser la touche Enter je suppose ? parceque sinon par défaut quand un bouton a le focus il suffit d'appuyer sur "barre d'espace" pour faire comme si on cliquait sur le bouton


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#8 31-10-2007 13:14:24

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: [RESOLU] CommandButton

ta réponse me laisse à penser qu'un user event "pbm_keydown" n'est pas compatible avec un commandbutton ?


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#9 31-10-2007 13:16:47

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: [RESOLU] CommandButton

rincevent a écrit:

Tu dois absolument utiliser la touche Enter je suppose ? parceque sinon par défaut quand un bouton a le focus il suffit d'appuyer sur "barre d'espace" pour faire comme si on cliquait sur le bouton

c'est pas le plus intuitif pour les utilisateurs.
mais je cherche avec les event "losefocus" et "getfocus" du commandbutton, pour aplliquer la méthode de pick


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#10 31-10-2007 13:24:42

cdtit  
Membre completement Geek
Lieu: Saint chéron
Date d'inscription: 19-12-2006
Messages: 124
Pépites: 678
Banque: 0

Re: [RESOLU] CommandButton

Bon effectivement un

Code: pb

this.default = true

dans le GetFocus
et un

Code: pb

cb_quitter.default = true

dans le LoseFocus fonctionne très bien.
Donc à moins que qq un ait une explication pour le violent plantage du pbm_keydown, je passe à RESOLUE


Les cons ça ose tout. C'est même à ça qu'on les reconnaît.

Hors ligne

 

#11 31-10-2007 14:01:19

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

Re: [RESOLU] CommandButton

à mon avis pour éviter le plantage il faut coder l'événement key de la fenêtre et non du bouton et utiliser la variable key plutot que la fonction KeyDown(KeyEnter!)  :

Code: pb

If key = KeyEnter! Then

  cb_ton_bouton.TriggerEvent( Clicked! )
  
End If

Return 0


Ensuite si en plus tu veux le faire uniquement si le bouton a le focus il faut appeler GetFocus et vérifier que c'est bien le bouton qui a le focus: (tiré de la doc)

Code: pb

GraphicObject which_control
CommandButton cb_which

If key = KeyEnter! Then

    which_control = GetFocus()

    If TypeOf(which_control) = CommandButton! Then

        cb_which = which_control
        If cb_which.ClassName = "cb_ton_bouton" Then 

           cb_ton_bouton.TriggerEvent( Clicked! )
  
        End If

    End If
  
End If

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

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22