#1 Tue 07 December 2004 18:06
- Virginie Girault
- Invité
Recup de la valeur d'une variable dans un EditText
De: V.Girault
Tout est dans le titre, mais je vais developper.
J'ai une boite de dialogue avec 2 Control EditText et 2 boutons dont 1 bouton OK.
Le second bouton lance une procedure qui apres quelques actions rends 2 variables. Je voudrais que ces 2 variables soient affichees dans mes Control Edittext de ma boite de dialogue.
J'ai lu dans le livre MB Utilisateur (et non, nous n'avons pas le livre Reference, ca n'aide pas...) que seul un bouton OK pouvait renvoyer des variables. J'ai donc voulu essayer avec la commande Alter Control, mais ca ne marche pas non plus. Comment faire ? Merci beaucoup.
#2 Tue 07 December 2004 18:06
- Geo Maumet
- Invité
Re: Recup de la valeur d'une variable dans un EditText
Bonjour
Les deux controles EditText doivent etre identifies par un Id 11 et 12 par
exemple
Le bouton doit lancer une procedure Ex:Calling MonCalcul et la procedure
MonCalcul doit modifier les editText par des alter Control Id 11 Value
Monresult
Salut
Laurent
#3 Wed 08 December 2004 14:25
- Virginie Girault
- Invité
Re: Recup de la valeur d'une variable dans un EditText
De: V.Girault
Effectivement, c'est ce que je me tue a faire depuis un certain temps, mais ca ne fonctionne pas, d'ou cette question !
Le pire, c'est que les variables (declarees en globales) passent tres bien et ont la valeur adequate, teste sur un Note dans la procedure....
Le code de transfert de ces valeurs dans la procedure est le suivant :
Alter Control 8 Value Min
Alter Control 9 Value Max
je ne comprends vraiment pas... Qu'est ce que c'est que cette diablerie ?!
Mes 2 controles sont identifies en tant que ID 8 et ID 9 dans ma boite de dialogue... On est tout de meme pas oblige de forcer ces controles en Active dans la procedure tout de meme...???
#4 Wed 08 December 2004 18:41
- Frédéric Renversez
- Invité
Re: Recup de la valeur d'une variable dans un EditText
Bonjour,
Min et Max ne seraient pas par hasard des mots cles reserves ?
Sinon n'hesitez pas a poster votre code pour que l'on puisse voir
de plus pres ce qui peut se passer.
Frederic RENVERSEZ
Ingenieur Developpement / SIG
I2G, 03 20 65 03 44
frederic.renversez@ i2g.fr
www.i2g.fr
#5 Wed 08 December 2004 18:41
- Frédéric Renversez
- Invité
Re: Recup de la valeur d'une variable dans un EditText
...Ou alors vous avez declare vos deux variables globales avec le
mot cle Dim et non Global.
Frederic RENVERSEZ
Ingenieur Developpement / SIG
I2G, 03 20 65 03 44
frederic.renversez@ i2g.fr
#6 Wed 08 December 2004 18:41
- Jacques Paris
- Invité
Re: Recup de la valeur d'une variable dans un EditText
Tout d'abord, d'apres ce que je sais Min et Max ne sont pas des mots
reserves; j'ai eu la meme reaction et je susi alle voir dans la definition
de DIM dans le guide de l'utilisateur.
Ensuite, je crois que MB a cree et entretient une certaine confusion avec
GLOBAL et DIM. Je n'utilise jamais GLOBAL car je le reserve a des
applications qui doivent s'echanger de l'information par l'intermediaire
de conversations DDE , ce qui n'est pas le cas de programmes que j'ecris.
Quand il n'y a qu'un seul module MBX, la globalite d'une variable va
dependre de la ou le DIM est place. S'il est mis avec les INSERT, DECLARE...
avant le SUB MAIN, il va s'appliquer a toutes les SUB et FUNCTION de ce
module. Sinon, la definition est valable seulement a l'interieur de la SUB
ou FUNCTION dans laquelle il est place.
Jacques Paris
#7 Wed 08 December 2004 18:42
- Frédéric Renversez
- Invité
Re: Recup de la valeur d'une variable dans un EditText
> Tout d'abord, d'apres ce que je sais Min et Max ne sont pas des mots
> reserves; j'ai eu la meme reaction et je susi alle voir dans la definition
> de DIM dans le guide de l'utilisateur.
Min et Max sont quand meme des fonctions d'agregation de la clause Select.
Je ne pense pas que le probleme soit la mais, avec MapBasic, je ne m'etonne
plus de rien.
> Ensuite, je crois que MB a cree et entretient une certaine confusion avec
> GLOBAL et DIM. Je n'utilise jamais GLOBAL car je le reserve a des
> applications qui doivent s'echanger de l'information par l'intermediaire
> de conversations DDE , ce qui n'est pas le cas de programmes que j'ecris.
>
> Quand il n'y a qu'un seul module MBX, la globalite d'une variable va
> dependre de la ou le DIM est place. S'il est mis avec les INSERT, DECLARE...
> avant le SUB MAIN, il va s'appliquer a toutes les SUB et FUNCTION de ce
> module. Sinon, la definition est valable seulement a l'interieur de la SUB
> ou FUNCTION dans laquelle il est place.
Effectivement, une variable declaree avec Dim est valable, lorsqu'elle est declaree
hors de toute procedure, pour toutes les procedures du module courant. J'avais
ete un peu vite dans ma reponse. Merci de votre precision. Je vois que vous
continuez a veiller au grain.
Toutefois Global est necessaire si les variables doivent etre partagees par tous les
modules d'un projet. C'est peut-etre le cas dans lequel se trouve la personne qui a
pose la question.
Et nous sommes d'accord pour dire que declarer des variables globales a
tout un projet est assez peu elegant. Mais parfois l'elegance peut etre le cadet
des soucis du programmeur, surtout avec MapBasic.
Enfin, nous n'avons toujours pas resolu le probleme initial. Peut-etre qu'avec un
morceau de code ?
Frederic RENVERSEZ
Ingenieur Developpement / SIG
frederic.renversez@ i2g.fr
#8 Thu 09 December 2004 13:08
- Virginie Girault
- Invité
Re: Recup de la valeur d'une variable dans un EditText
De: V.Girault
Bonjour,
Et bien allons-y pour le code :
Voici les declarations de variables : Min et Max sont entiers et global
GLOBAL fic, Type_fic, Min, Max, Nclasses, Diff, valMin, valMax, varMin, varMax, Result as integer
Puis le code de la boite de dialogue (partiel, sinon c’est trop long…) ou j’assigne aux EditText leur variable :
boite1=TRUE
While boite1
zone_liste=Table_Ouverte()
Dialog Title Calculs Width 480
Control Button Title Calcul des ecarts types Position 242,60 Calling ValMinMax_Win1
Control StaticText Title Flux mini : Position 130, 76
Control EditText ID 8 Position 130, 86 Width 40 Value Min
Control StaticText Title Flux maxi : Position 183, 76
Control EditText ID 9 Position 183, 86 Width 40 Value Max
Control Button Title Fermer Position 380, 105 Calling EndApp
Control OKButton Position 420, 105 Calling DefineStrucTable
Wend
boite1=False
Enfin, dans la procedure ValMinMax_Win1, j’affecte des valeurs aux variables Min et Max :
Min = valMin
Max = valMax
Note Min
Note Max
Alter Control 8 Value Min
Alter Control 9 Value Max
Diff = valMax - valMin
Note Diff
A noter, comme je le disais dans le precedent post, que Min et Max recuperent correctement leur valeur.
Le coup des difficultes de MB a gerer correctement des variables Globales et Dim me laisse tout de meme sans voix... (...)
Merci beaucoup, je continue a chercher de mon cote
#9 Thu 09 December 2004 16:26
- Francois Biju-Duval
- Invité
Re: Recup de la valeur d'une variable dans un EditText
Et si vous ajoutiez l'instruction DIALOG PRESERVE a la fin de la procedure ValMinMax_Win1, afin de reactiver la boite de
dialogue personnalisee apres un click sur un bouton OK ou Cancel selon le Reference Guide de MapBasic 6.0 ? ... tenez-moi
quand meme au courant ...
#10 Fri 10 December 2004 19:41
- Frédéric Renversez
- Invité
Re: Recup de la valeur d'une variable dans un EditText
Bonjour,
Je ne pense vraiment pas que ce soit ca, mais avez-vous essaye de
renommer vos deux variables, par exemples iMin et iMax ?
Parce qu'a priori, comme ca, au debotte, je ne vois pas trop ce
qui peut poser probleme.
Cordialement,
Frederic RENVERSEZ
Ingenieur Developpement / SIG
I2G, 03 20 65 03 44
frederic.renversez@ i2g.fr
#11 Mon 13 December 2004 09:21
- Virginie Girault
- Invité
Re: Recup de la valeur d'une variable dans un EditText
De: V. Girault
Bonjour
Oui, j'ai bien essaye, mais ca ne fonctionne pas non plus, je vais etudier soigneusement le code que M. NADAL m'a gracieusement confie.... Si je trouve quelque chose, je le fais suivre dans un post de resolution du PB....
@+tard