Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| a l'aide sur " procédures " | |
| | Auteur | Message |
---|
RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: a l'aide sur " procédures " Ven 19 Oct 2012 - 18:01 | |
| puisque j'ai dit dans le post précédant (sondage) que je ne comprends pas,voici une question concernant le code fait a mon intention par jean-claude le 24 sept. j'essai de reproduire ce code avec les " procédures ",mais là je me plante completement. j'ai mis en lignes 22 et 30 des print pour voir et là catastrophe ,avant de rentrer une 1er valeur dans le edit 2, j'ai deja des réponses dans mes print. j'ai l'intention de me servir des a% et b% ou est ce que je fais l'erreur , ou les erreurs - Code:
-
error_french dim wf%,hf%:wf% = 1150 : hf% = 800 width 0,wf%/2 : height 0,hf%/2 left 0,int((screen_x/2)-width(0)/2):top 0,int((screen_y/2)-height(0)/2)
dim ccc%,pro% : ' ccc% doit etre compris entre 13 au mini et 20 au maxi
mise_en_place() entree_des_donnees(ccc%,pro%)
END
sub entree_des_donnees(a%,b%) set_focus 2 if numeric(text$(2))=1 a%=val(text$(2)) inactive 1:inactive 2 active 3:active 4 set_focus 4 end_if print_locate 25,50 :print "ccc% = ",a% :' pour vérif
if numeric(text$(4))=1 b%=val(text$(4)) inactive 3:inactive 4 end_if
' caption 0,"Nombre de Chevaux: "+str$(a%)+string$(10," ")+"Nombre de Pronostiqueurs: "+str$(b%) print_locate 25,70:print "pro% = ",b% :' pour vérif end_sub
sub mise_en_place()
' les chevaux alpha 1 top 1,13:left 1,12:' on positionne l'alpha font_bold 1:' caractères en gras caption 1,"Nombre de Chevaux:" edit 2 top 2,10 :left 2,140 :width 2,30
' les pronostiqueurs alpha 3 top 3,13:left 3,190 font_bold 3:' caractères en gras caption 3,"Nombre de Pronostiqueurs:" inactive 3:' pour obliger l'utilisateur à commencer par le nombre de chevaux edit 4 width 4,30:' on adapte la largeur de l'édit pour entrer 2 ou 3 caractères top 4,10:left 4,350 inactive 4:' pour obliger l'utilisateur à commencer par le nombre de chevaux
end_sub
[/left] | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: a l'aide sur " procédures " Ven 19 Oct 2012 - 18:26 | |
| Par ce que tu dois faire une boucle pour attendre qu'une valeur soit entrée avant de faire tes print. Là tu n'as rien qui stop ton programme en attendant une saisie valide. Il faut que tu fasse la mise en place de ton interface. Après tu créé un événement pour quand on valide les champs Une fois que tout ce qui devait être saisi est saisi, tu lance une procédure avec tes print. entree_des_données doit rester un événement (ne le mets pas en sub) En fin de traitement de l’événement, si tes conditions sont réunies, tu lancerais une procédure affiche (par exemple) dans laquelle tu afficherais ton résultat.
| |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: a l'aide sur " procédures " Ven 19 Oct 2012 - 20:41 | |
| En fait, il te faut procéder par ordre. Actuellement ta procédure mise_en_place déclare et affiche les objets nécessaire pour ta saisie. Mais elle ne fait rien d'autre... Donc: 1ere étape : déclarer les objets pour la saisie (EDIT,BOUTON,etc...) 2eme étape : c'est traiter la saisie elle-même: Pour cela tu peux lier des "évènements" sur les objets de saisie/validation (EDIT,BUTTON,etc...) grâce aux commandes ON_CHANGE, ON_CLICK... (jette un coup d'oeil aux exemples de la doc) logiquement, pour commencer, ces commandes doivent se trouver au même endroit que la déclaration (cf étape 1) La 3eme étape: afficher le résultat de la saisie... Le plus simple, avant de coder la moindre ligne de code, c'est que tu écrive sur papier le déroulement de ton programme. Pendant mes études, en algorithmie, on commençait toujours par la fin : cad : Affiche(résultat) puis après on se posait la question: Bon, pour afficher le résultat, qu'est ce qu'il vient AVANT le "affiche(résultat)" ? -> il me faut ceci, cela... Je suppose que maintenant la méthode d'apprentissage a certainement changé, mais cela reste toujours valable... Si j'arrive à retrouver mes cours en algorithmie, je ferai un petit tuto pour ceux que cela interesse... (faut que je cherche dans mes cartons.. ) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| | | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: a l'aide sur " procédures " Ven 19 Oct 2012 - 20:59 | |
| - ygeronimi a écrit:
- A la condition que tu ne te noies pas...
Pour l'instant je pars retrouver mes poipois et noyer mes yeux dans le monde amazonien et africain... c'est la soirée aquariophile... A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: a l'aide sur " procédures " Ven 19 Oct 2012 - 21:45 | |
| attendons-nous au pir (anha) | |
| | | Invité Invité
| Sujet: Re: a l'aide sur " procédures " Ven 19 Oct 2012 - 23:58 | |
| Bonsoir, Je montre une méthode de capture d'infos, car je sais qu'au début, on s'est tous cassé les dents. Il y a la méthode des message_input, mais pour ce genre de saisie ce n'est pas très pratique. Je n'ai fait aucun contrôle, ce sera à reprendre. - Code:
-
error_french label suite_saisie dim wf%,hf%:wf% = 1150 : hf% = 800 width 0,wf%/2 : height 0,hf%/2 left 0,int((screen_x/2)-width(0)/2):top 0,int((screen_y/2)-height(0)/2)
dim ccc%,pro% : ' ccc% doit etre compris entre 13 au mini et 20 au maxi
' conception d'une forme pour entrer les données form 10:width 10,500:height 10,200:command_target_is 10 :left 10,left(0)+20:top 10,top(0)+100 :hide 10:caption 10,"on valide en fermant la fenêtre" ' je laisse les alphas de présentation
edit 12:left 12,20:top 12,30:hint 12,"saisir le nb de pronostiqueurs"
edit 14:left 14,20:top 14,60:hint 14,"je ne sais pas ce qu'on saisie ici" on_close 10,suite_saisie command_target_is 0 ' mise_en_place() saisie() end A partir de cet exemple, on peut revoir le programme, et l'adapter autrement. (tiens je vois que webdaw s'affiche, ce que je n'arrivais pas à faire, ces temps-ci) |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: a l'aide sur " procédures " Sam 20 Oct 2012 - 0:36 | |
| J'ai aussi les fonctions ShowMessageModal et ShowMessageModalEX qui permettent de faire une saisie paramétrable. C'est dans KGF.dll, et c'est documenté dans la section des fonctions de gestion des fenêtres. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: a l'aide sur " procédures " Sam 20 Oct 2012 - 9:51 | |
| Bonjour, J'ai repris ton programme RMont : Avant dans les anciens basics tu avais input "a:";a$ c'était la touche return qui te faisait passer à la suite. il faut bien comprendre que du moment que tu utilises des objets graphiques (EDIT, BUTTON,etc...) tu devras gérer les évènements de ces objets pour obtenir quelque chose. Dans le cas présent, il n'y a pas d'équivalent à la touche "return" sur les champs de saisie (EDIT) mais par contre il y a "l’évènement" ON_CHANGE qui te signale que le contenu de l' EDIT a changé... Donc il nous faut écrire le bout de code nécessaire pour traiter cet évènement... - Code:
-
error_french dim wf%,hf%:wf% = 1150 : hf% = 800
width 0,wf%/2 height 0,hf%/2 left 0,int((screen_x/2)-width(0)/2) top 0,int((screen_y/2)-height(0)/2)
dim ccc%,pro% : ' ccc% doit etre compris entre 13 au mini et 20 au maxi
mise_en_place()
END
sub mise_en_place() LABEL SaisieChevaux,SaisiePronostiqueur LABEL SaisieOk,AfficheResultat ' les chevaux alpha 1 top 1,13:left 1,12:' on positionne l'alpha font_bold 1:' caractères en gras caption 1,"Nombre de Chevaux:" DIM nbChevaux%
edit 2 top 2,10 :left 2,140 :width 2,30 on_change 2, SaisieChevaux : ' la procedure de traitement de saisie
' les pronostiqueurs alpha 3 top 3,13:left 3,190 font_bold 3:' caractères en gras caption 3,"Nombre de Pronostiqueurs:"
edit 4 width 4,30:' on adapte la largeur de l'édit pour entrer 2 ou 3 caractères top 4,10:left 4,350 on_change 4, SaisiePronostiqueur : ' la procedure de traitement de saisie DIM nbProno% end_sub
AfficheResultat: caption 0,"Nombre de Chevaux: "+str$(nbChevaux%)+string$(10," ")+"Nombre de Pronostiqueurs: "+str$(nbProno%) RETURN
' Cette procedure est automatiquement appelée par Panoramic dès que ' la personne tape quelque chose dans le EDIT 2 SaisieChevaux: if numeric(text$(2))=1 nbChevaux%=val(text$(2)) ' J'ai supprimé les inactive 1 et 2 car il faut donner la possibilité à la ' personne de corriger ce qu'elle a saisie (en cas d'erreur de frappe) end_if ' on vérifie la validité de l'ensemble pour afficher le résultat GOSUB SaisieOk RETURN
' idem que précédement SaisiePronostiqueur: if numeric(text$(4))=1 nbProno%=val(text$(4)) end_if ' on vérifie la validité de l'ensemble pour afficher le résultat GOSUB SaisieOk RETURN
SaisieOk: ' si tout est correctement rempli if numeric(text$(4))=1 AND numeric(text$(2))=1 GOSUB AfficheResultat else CAPTION 0,"" end_if RETURN Ce code n'est pas optimisé, on peut l'écrire plus simplement mais je préfère le laisser comme cela pour que tu comprennes bien le découpage... Je te conseille ce tuto : voir iciil reprend bien les bases à connaitre quand on programme en basic Panoramic. | |
| | | Contenu sponsorisé
| Sujet: Re: a l'aide sur " procédures " | |
| |
| | | | a l'aide sur " procédures " | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |