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 |
|
|
| mise a jour calculatrice | |
|
+7Marc Klaus papydall JL35 Jean Claude Yannick joeeee2017 11 participants | |
Auteur | Message |
---|
joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: mise a jour calculatrice Sam 14 Oct 2017 - 12:51 | |
| - Code:
-
dim i,j,u,x,y,z,op,a$,b$,c$,d$,m$,n(40),t$(5),wi,he,touche(255) label menu,move,signe,saisie,egal,touc
Left 0,screen_x-1000:top 0,99:width 0,337:height 0,572:caption 0,"Calculatrice" data "Quitte",50,"edition",50,"copier",23,"coller",23 main_menu 50 for i=22 to 25:sub_menu i:read a$:caption i,a$:read u:parent i,u:next i font_size 0,25:e(51,13,74,287,16,13):e(40,13,13,287,70,24):wi=65:he=65
data 8,9,10,12,5,6,7,13,2,3,4,14,1,11,17,15,18,16,19,20,21 data "0","1","2","3","4","5","6","7","8","9",".","/","*","-","+","=","C",chr$(27) data 96,97,98,99,100,101,102,103,104,105,110,111,106,109,107,013,67,08
for y=121 to 346 step 75:for x=13 to 239 step 75:p(x):next x:next y y=421:p(13):wi=214:p(88): wi=34:he=07:y=112:p(013):p(139):p(269) for i=01 to 18:read a$:caption i,a$:next i:font_size 18,40:font_bold 51 for i=01 to 18:read j:touche(j)=i:next i:touche(187)=16
for i=01 to 29:n(i)=-1:next i:n(3)=13:n(1)=74:t$(0)="0" for i=01 to 11:on_click i,saisie:next i:hint 21,"#.##":hint 20,"led" for i=12 to 15:on_click i,signe :next i for i=17 to 25:on_click i,menu : next i:on_click 16,egal:on_move 0,move on_mouse_move 0,move:on_key_down 0,touc:trigger_click 17:top 0,100 end sub p(x):read u:button u:left u,x:top u,y:width u,wi:height u,he:end_sub sub e(a,b,c,d,e,f):edit a:left a,b:top a,c:width a,d:height a,e font_size a,f:inactive a:end_sub ' ____________________________________________________________________________ saisie: t1():led():t2():t3():return sub t1():if m$="=" then a$="":b$="" end_sub sub t2():if instr(b$,".")>0 and m$="." then m$="" if b$="0" then b$="" b$=b$+m$:if b$="." then b$="0." end_sub sub t3():text 40,b$:affic():end_sub
sub calcul():xz():if x+z<2 then end_sub if val(b$)=0 and op=12 then text 40,"Impossible":m$="":end_sub select op case 12:a$=val(a$)/val(b$) case 13:a$=val(a$)*val(b$) case 14:a$=val(a$)-val(b$) case 15:a$=val(a$)+val(b$) end_select x=instr(a$,"."):if n(21)*x>0 then a$=left$(a$,x+2) text 51,d$+"="+a$:text 40,a$:c$=b$:b$="":end_sub signe: led():if a$="" then a$=b$:b$="" if a$="" then a$="0" if b$="" then op=u affic():calcul():op=u:return egal: led():if b$="" then b$=c$ if b$="" then b$="0" affic():calcul():return
sub affic():set_focus 0:if a$="" then text 51,b$:end_sub d$=a$+caption$(op)+b$:text 51,d$:end_sub '-------------------------------- sub led():u=number_click:m$=caption$(u):if n(20)<>-1 then end_sub 2d_pen_color 247,88,0:l1():wait 30:c():l1():end_sub move: 2d_rectangle 0,0,320,500:return menu: u=number_click:n(u)=n(u)*-1 select u case 17:led():text 40,"0":text 51,"":c$="":a$="":b$="" case 22:terminate case 24:clipboard_string_copy text$(40) case 25:b$=clipboard_string_paste$:xz():t$(1)=b$:t1():b$="":m$=t$(x):t2():t3() case 19:top 51,n(n(u)+2):gosub move case 18:t1():led():xz():t$(1)=left$(b$,len(b$)-x):b$=t$(x):t3() end_select:set_focus 0:return sub l1():2d_rectangle left(u),top(u),left(u)+width(u),top(u)+height(u):end_sub sub c():2d_pen_width 12:2d_pen_color 158,174,139:2d_fill_color 158,174,139:end_sub sub xz():x=numeric(b$):z=numeric(a$):end_sub touc: u=touche(scancode):if u>0 then trigger_click u set_focus 0:return
Dernière édition par joeeee2017 le Sam 7 Sep 2019 - 13:06, édité 147 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 14 Oct 2017 - 13:29 | |
| Bonjour et bienvenu sur le forum joeeee2017. Ne te décourage pas pour ci peu. Jean Claude essaie juste de mettre sur la bonne voie. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: mise a jour calculatrice Sam 14 Oct 2017 - 13:38 | |
| ReBonjour joeeee2017, Pour commencer et pour que les lecteurs de ce forum ne s'y perdent pas, je suppose que c'est ta réponse à mon dernier message ici => https://panoramic.1fr1.net/t5465-calculatrice#66728Tu aurais dû répondre directement sur le même sujet. Bref, Je comprends, par le titre de celui-ci, que tu me trouve "sévère". Tu as raison ! mais ce n'est pas par méchanceté, c'est plutôt pour t'aider à comprendre comment le langage Panoramic fonctionne. Je veux bien t'accorder que je suis assez direct, mais soit certain que ce n'est que par maladresse d'écriture et que mon intervention n'a pas d'autre but que de t'aider. Je viens de tester ton nouveau code et je vois que la présentation est nettement plus jolie. J'ai vu également que tu as supprimé END qui dans ton cas n'avait pas d'utilité. Et j'ai vu aussi que tu as positionné un RETURN au sous-programme "fin:". J'en conclus que même "sévère" tu tiens compte de ce que j'ai écrit, c'est la preuve que tu es capable d'apprendre, alors ne soit pas susceptible, prend ce qui est bon et ignore ma sévérité. Ce qui serait sympa, c'est que tu nous dise, à nous tous, quelles sont tes connaissances en programmation et celles pour Panoramic, ce qui nous permettrait de te répondre plus juste. Ne soit pas inquiet, je ne cherche qu'une chose: c'est t'aider. A+ PS: Merci Yannick, on vient de se croiser, tu as raison: mon but n'est que d'aider.
Dernière édition par Jean Claude le Dim 15 Oct 2017 - 18:28, édité 1 fois | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: Re: mise a jour calculatrice Sam 14 Oct 2017 - 23:57 | |
| j ai de vieilles connaissances en basic et pas trop en panoramic mais il ya de grandes ressemblances, et panoramic est facile d utulisation, j aimerais programmer en c++ mais les ide sont pas facile a parametrer | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: mise a jour calculatrice Dim 15 Oct 2017 - 9:41 | |
| bonjour à tous, @joeeee2017 Je vois que ton parcours de programmeur ressemble beaucoup à celui de pas mal de Panoramiciens. En particulier, tes connaissances en basic sont issus des "Anciens BASICs". De ce fait, je te conseille de lire les 4 tutoriels qui concerne la structure d'un programme. Tu les trouveras dans la rubrique "Tutoriels et éclaircissements" de ce forum. voici l'adresse du premier => https://panoramic.1fr1.net/t1498-structure-pour-un-programme-windows-1-4Bonne lecture, tu verras que c'est très instructif et cela t'éviteras bien des pièges à l'avenir. A+ | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: bonjour/ bonne nuit mdr Dim 15 Oct 2017 - 13:58 | |
|
Dernière édition par joeeee2017 le Lun 16 Oct 2017 - 0:40, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 15 Oct 2017 - 14:47 | |
| Belle réalisation. Une suggestion: Tu pourrais bloquer les boutons "Euro" et "Franc" une fois un clic appliqué pour éviter à l' utilisateur de convertir des euros en euros et des francs en francs. Un clic sur "C" remettant les deux actifs. Il te suffit de deux petites variables d' état et de quelques if... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: mise a jour calculatrice Dim 15 Oct 2017 - 18:05 | |
| hé ! bravo, joeeee2017, tu viens de franchir un grand pas. Ton programme est maintenant bien structuré. Tu apprends vite, c'est super ! @Yannick, Ton idée de désactiver le bouton qui est en service est effectivement nécessaire. Mais ne penses-tu pas que remplacer les boutons par 2 OPTION(s) serait plus judicieux ?L'avantage des OPTION(s): c'est qu'il n'y a pas à gérer les activations (c'est l'un ou l'autre). A+ PS: je retire ce que j'ai dit "remplacer les boutons par des options", car c'est trop galère à cause des DATA(s), il vaut mieux gérer l'activation ou pas des boutons.c'est très simple, il suffit de remplacer le sous-programme euro par celui-ci: - Code:
-
euro: if clicked(18)=1 then inactive 18 : active 19 : text 40,str$(val(text$(40))/6.55957) if clicked(19)=1 then inactive 19 : active 18 : text 40,str$(val(text$(40))*6.55957) return
Dernière édition par Jean Claude le Dim 15 Oct 2017 - 18:50, édité 2 fois | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: bonsoir Dim 15 Oct 2017 - 18:48 | |
| merci pour vos commentaire aprés reflexion je viens de faire un copié collé merci | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: mise a jour calculatrice Dim 15 Oct 2017 - 18:56 | |
| On viens de se croiser joeeee2017, Essais l remplacement du sous-programme "euro:" par celui que j'ai posté en même temps que ta réponse. C'est tout simple et cela permet de ne pas pouvoir cliquer 2 fois de suite sur le même bouton. En tous cas Bravo ! PS: bon hé bien je vois que c'est fait | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: re Dim 15 Oct 2017 - 18:57 | |
|
Dernière édition par joeeee2017 le Lun 16 Oct 2017 - 0:41, édité 1 fois | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: re Dim 15 Oct 2017 - 19:08 | |
| je me trompe entre repondre et nouveau sujet si tu veux merci de supprimer le dernier sujet | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: mise a jour calculatrice Dim 15 Oct 2017 - 20:27 | |
| Tu viens de me faire découvrir que le bouton "nouveau" est actif quand on ouvre un sujet, c'est vrai que ça porte à confusion. Il faudrait que Jack voit le problème. Une information: tu es le seul qui peut changer le titre de ton sujet, par exemple ajouter le mot "résolu" quand tu as eu la réponse à une question. Pour cela tu utilises le bouton "éditer" du premier message du sujet que tu as ouverts et tu peux modifier le titre ou ajouter "résolu". Par contre, je crois que tu ne peux pas annuler le message (c'est à vérifier). En attendant, tu peux toujours remplacer ton texte par "erreur de manipulation: message annulé", Jack saura qu'il peut le supprimer. Pour reprendre le fil de la discussion: - joeeee2017 a écrit:
- calculatrice c est fait faut je trouve autre chose a faire
Ben... des idées c'est ce qu'il nous manque souvent à nous programmeur. En attendant que tu trouves quelque chose, je te propose un code de calculette que j'ai fait en 2015, simplement pour que tu découvres qu'il y a d'autre trucs de programmation à découvrir. Hé oui Panoramic est très puissant et assez complet ! Tu trouveras ce code iciDans un premier temps, je veux te faire découvrir une autre forme de sous-programme qu'on appelle SUB() Dans le code tu verras qu'il y en a beaucoup. Regarde ce quelles contiennent et comment ça marche. Là encore, utilise le manuel de référence pour avoir des explications. D'autre part tu peux aussi regarder le magazine "Panoramic Le Mag" => icic'est une mine d'or ! A+ | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: bonjour Lun 16 Oct 2017 - 18:42 | |
| je mets a jour regulierement le programme en haut de cette page | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: mise a jour calculatrice Lun 16 Oct 2017 - 20:11 | |
| Merci pour l'info, Je viens de tester. Tu as changé le mode de changement des couleurs A+ | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: re Lun 16 Oct 2017 - 21:49 | |
| oui et j ai mis de gosub calcul comme ça il fait des operation a suivre genre 2+2+2 avan de faire egale | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: re Lun 16 Oct 2017 - 21:55 | |
| la je travail sur une creation de data automatique par exemple on deplace des bouton dans une fenetre on sauvegarde et on recupere les data dans un fichier qui serviront dans un autre programme c est ce que javais fait pour la calculatrice je veux en faire un pour plusieur objet tel que cercle etc | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: effacé Lun 16 Oct 2017 - 22:00 | |
|
Dernière édition par joeeee2017 le Ven 15 Déc 2017 - 11:25, édité 6 fois | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: mise a jour calculatrice Mar 17 Oct 2017 - 8:47 | |
| Bonjour à tous, Je viens de regarder ton code joeeee2017, Les opérations en continu fonctionnent. Maintenant je comprends un peu mieux ton poste https://panoramic.1fr1.net/t5469-calculatrice-avec-touches-movibles#66737 (pourquoi tu voulais déplacer les touches...) J'ai une remarque concernant le nom du fichier que tu as utilisé => donée calc.txt Pour certain système d'exploitation (XP par exemple) ce type de fichier pose des problèmes, en particulier leur recherche... Il faut éviter les caractères accentués et les espaces dans un nom de fichier. Pour ton cas tu peux faire "donee_calc.txt" ou "DoneeCalc.txt" ce qui supprime les espaces. D'autre part, pour éviter que le fichier soit créer n'importe où sur l'ordinateur tu peux ajouter, dans ton code, juste avant la création du fichier cette ligne DIR_CHANGE DIR_CURRENT$. Cette commande permet de se placer dans le répertoire (dossier) ou se trouve ton code. Et pour être complet, avertis-nous quand il y a un ou plusieurs fichiers qui seront créés par ton programme, comme ça on aura plus qu'à prendre nos dispositions pour éviter de rechercher le ou les fichiers (en clair on enregistre ton code dans un nouveau dossier, c'est dans ce nouveau dossier qu'on retrouvera le fichier). A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: mise a jour calculatrice Mar 17 Oct 2017 - 13:14 | |
| Et même 'DonneeCalc.txt' ce serait encore mieux, mais bon... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: mise a jour calculatrice Mar 17 Oct 2017 - 16:36 | |
| Salut tout le monde. @joeeee2017 Je te souhaite la Bienvenue sur le Forum et j’espère que tu y seras très actif. J’ai regardé et testé ton code de la Calculatrice : c’est bien ce que tu as fait et je t’en félicite. Je vois que tu es loin d’être un débutant. Aussi tu as pris en considération les quelques suggestions qui te sont données par Jean Claude, Yannick, JL35, etc. Après ce préambule, permets-moi de te proposer quelques idées générales : c’est ma façon de faire et libre à toi de t’en tenir compte ou pas. 1) Lignes 13 et 14 - Code:
-
left 0,1000:top 0,1 width 0,337:height 0,572
Tu définis la position et les dimensions du FORM 0 sans doute selon ta propre configuration matérielle, avec un écran dont la largeur est supérieure à 1000 + 337. Et si quelqu’un qui veut utiliser ton programme n’en possède qu’un écran, disons de 1200 pixels ou moins comme largeur ? Il n’en verra qu’une partie du FORM 0 ou même rien du tout. Ce que je te propose, utilise SCREEN_X qui te donne la largeur de ton écran en pixels. ( SCREEN_Y donne la hauteur) A partir de cette donnée, tu définis le LEFT du FORM 0, par exemple comme ceci : - Code:
-
Left 0, sceen_x – 400
400 est > width 0 qui est de 337 pixels, ce qui laisse quelque 63 pixels à droite et ceci quelque soit la définition de l'écran de l'utilisateur. 2) Tu as opté pour des SUB_MENUs pour la gestion du programme, c’est bien (mais des simples BUTTONs peuvent aussi faire l’affaire). Ce que je te proposes à ce sujet c’est de donner à l’utilisateur la possibilité de confirmer son choix. Je m’explique : je ne désire pas sortir du programme, mais j’ai cliqué intentionnellement sur le menu Quitte et là, trop tard, de revenir sur mon choix. Pour remédier à cette situation, un message de confirmation sera le bien venu. Dans le sous-programme fin :, tu peux le modifier ainsi : - Code:
-
fin: if message_confirmation_yes_no("Tu veux vraiment Quitter ?") = 1 terminate end_if return
De cette façon, on ne quitte le programme que si on ferme la boite du message par le bouton Oui, sinon on continue comme si rien n’était. 3) Remarque sans trop d’importance : Quand on dispose d’une série de tests IF … THEN comme dans les lignes 67 à 71 par exemple, il est avantageux d’utiliser la structure SELECT … CASE … END_SELECTMais ce n’est qu’une question de choix personnel. Pour terminer mon intervention : libre à toi de suivre ou non mes suggestions. On est sur ce Forum pour apprendre les uns des autres et aussi pour le plaisir de partager ! Bonne programmation en PANORAMIC. A + | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: re Mer 18 Oct 2017 - 0:01 | |
| jai mis a jour la calculatrice en haut de cette page merci pour les infos | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: boniour Mer 18 Oct 2017 - 9:43 | |
| j ai essayé avec select mais ça marche pas avec mon style de programme | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: mise a jour calculatrice Mer 18 Oct 2017 - 14:06 | |
| Salut Joe Voici comment faire : Le sous-programme Calcul pourrait être comme ceci - Code:
-
rem ---------------------------------------------- calcul: if a$ = "" then a$ = b$ : b$ = "" if b$ = "" then return a = val(a$) : b = val(b$) rem ========= Utilisation de la structure SELECT / CASE / END_SELECT =========== select op case 13 : if b <> 0 then a = a / b case 12 : a = a * b case 15 : a = a - b case 16 : a = a + b end_select rem ============================================================================ ' if op=13 and b<>0 then a=a/b ' if op=12 then a=a*b ' if op=15 then a=a-b ' if op=16 then a=a+b a$ = str$(a) : text 40,a$ : b$ = "" return rem ---------------------------------------------
A+ | |
| | | joeeee2017
Nombre de messages : 60 Date d'inscription : 13/10/2017
| Sujet: re Mer 18 Oct 2017 - 14:57 | |
| merci je verais plutard ça y est fait
ça dort ici | |
| | | Contenu sponsorisé
| Sujet: Re: mise a jour calculatrice | |
| |
| | | | mise a jour calculatrice | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |