banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 30 August 2010 21:27

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

[MapBasic v.10] CommandInfo

Bonjour,

J'ai un dialog dans une fonction avec deux boutons un "suivant" et un "précédent" (pas de Ok bouton)

J,aimerias que lorsqu'on clique sur un bouton un action se fasse du genre CommandInfo(CMD_INFO_DLG_OK) sauf qu'au lieu d'être Ok, je veux que se soit suivant et précédent j'ai essaier le code suivant mais sa ne fonctionne pas et j'ai besoin de votre aide

Code:

Control Button id 150 Title  " > " Width 30 Height 15 Position 275, 340  
Control Button id 151 Title  " < " Width 30 Height 15 Position 242, 340

If CommandInfo(CMD_INFO_DLG_TOOLBTN) = 150 then
MetaDialog_Counter = MetaDialog_Counter + 1
Goto MetaFill1
end if

If CommandInfo(CMD_INFO_DLG_TOOLBTN) = 151 then
MetaDialog_Counter = MetaDialog_Counter - 1
Goto MetaFill1
end if

Merci
JF

Hors ligne

 

#2 Tue 31 August 2010 11:18

Patrick PALMIER
Participant actif
Lieu: Lille
Date d'inscription: 18 Jan 2007
Messages: 97

Re: [MapBasic v.10] CommandInfo

Bonjour,

Je pense que ce commandinfo indique quel toolbutton est sélectionné. Il ne fonctionne pas avec les boutons standards
La meilleure façon est d'associer un "calling" au bouton comme suit.
Ca devrait fonctionner


Control Button id 150 Title  " > " Width 30 Height 15 Position 275, 340 
Calling Metafill_plus_1

Control Button id 151 Title  " < " Width 30 Height 15 Position 242, 340
Calling Metafill_moins_1


sub metafill_moins_1
MetaDialog_Counter = MetaDialog_Counter - 1
end if

sub metafill_plus_1
MetaDialog_Counter = MetaDialog_Counter + 1
end if

Hors ligne

 

#3 Tue 31 August 2010 14:11

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: [MapBasic v.10] CommandInfo

Merci Patrick,

par contre mon problème est que dans mon code j'ai un "Goto MetaFill12" et qui lit des controls (readcontrolvalue) du dialog, j'aurais aimer rester dans la même sub surtout que c'est une fonction.

Merci et j'essai ta méthode

JF

Hors ligne

 

#4 Tue 31 August 2010 15:28

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: [MapBasic v.10] CommandInfo

Sa ne fonctionne pas..

Dans le fond j'ai simplement besoin d'identifier le boutton appuyer sans sortir de la fonction. Il doit bien avoir une commande qui fait cela?

Ou est-il possible de faire un calling une fonction?

Jf

Hors ligne

 

#5 Tue 31 August 2010 17:20

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: [MapBasic v.10] CommandInfo

Je crois que la fonction que je cherche est la suivante

...
Control Button id 150 Title  " > " Width 30 Height 15 Position 275, 340
Control Button id 151 Title  " < " Width 30 Height 15 Position 242, 340

button_id = TriggerControl()
print button_id
print TriggerControl()

if button_id = 150 then
Metadatawh1(1)= "Description"
Metadatawh1(2)= "Abstract : "
...
If button_id = 150 then
MetaDialog_Counter = MetaDialog_Counter + 1
print "test2"
end if
...
end Function

Mais ma procedure refuse d'entre dans mais "if" (les print ne s'affichent pas) se peut-il que ce soit du au fait que ce soit un Fonction et non un sub? Ou mon code est mal?

JF

Hors ligne

 

#6 Wed 01 September 2010 15:27

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: [MapBasic v.10] CommandInfo

Problème résolu

1. ajout d'un calling apres les deux bouton
2. Ajout button_id = TriggerControl() dnas les deux nouvelle sub procedure
3. Ajout de if commandinfo(CMD_INFO_DLG_OK) = False and button_id <> 150 and button_id <> 150 then MetaDialog_Counter = 10 end if
4. Dans une sub englobante j'ai if MetaDialog_Counter = 10 then exit sub donc cela gère bien le cas ou l'utilisateur appuie echape ou annulé.

Cela permet alors de créer des dialog successif
JF

Hors ligne

 

Pied de page des forums

Powered by FluxBB