FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Aujourd'hui à 16:52

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 14:16

» Compilateur FBPano
par Ouf_ca_passe Aujourd'hui à 12:25

» mise a jour calculatrice
par papydall Aujourd'hui à 2:01

» double guillemets "" dans un EDIT
par Marc Hier à 23:43

» Documentation de KGF
par Klaus Lun 20 Nov 2017 - 22:52

» Zoom sur une portion d'écran
par JL35 Lun 20 Nov 2017 - 21:51

» Recherche d'une expression dans un source
par Marc Lun 20 Nov 2017 - 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 mise a jour calculatrice

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: mise a jour calculatrice   Sam 14 Oct 2017 - 13:51

Code:

dim a$,aa$,op,i,a,b,b$,c$,u,n
dim t(40,4),tx$(20),v,coul,c1,c2,c3

label calcul,fin,menu,init,carre,virgule,euro,couleur
main_menu 20
sub_menu 21:caption 21,"Quitte":parent 21,20
sub_menu 22:caption 22,"couleur":parent 22,20
on_click 21,fin:on_click 22,couleur

Left 0,screen_x-400:top 0,1
width 0,337:height 0,572
caption 0,"Calculatrice"

rem  -------------------------------------------------------------------
data 013,271,065,065,088,271,065,065,163,271,065,065,013,196,065,065,088,196,065,065
data 163,196,065,065,013,121,065,065,088,121,065,065,163,121,065,065,013,346,065,065
data 088,346,065,065,238,196,065,065,238,121,065,065,163,346,065,065,238,271,065,065
data 238,346,065,065,013,421,290,065,013,085,065,026,231,085,065,026
rem  ----------------------------------------------------------------------
data "1","2","3","4","5","6","7","8","9","0",".","*","/","C","-","+","=","euro","franc"

for i=1 to 19
button i:read t(i,1):read t(i,2):read t(i,3):read t(i,4)
left i,t(i,1):top i,t(i,2):width i,t(i,3):height i,t(i,4)
next i

for i=1 to 19
read tx$(i):font_size i,25:caption i,tx$(i)
next i

edit 40
left 40,13:top 40,18
width 40,287:height 40,70
font_size 40,26:font_size 18,14:font_size 19,14
rem --------------------------------------------------------
for i=1 to 17:on_click i,menu:next i
on_click 18,euro:on_click 19,euro
inactive 18:text 40,"0":gosub couleur
end
rem --------
menu:
u=number_click:gosub carre
if u=14 then gosub init:text 40,"0"
rem ----------------------------------
if u=17 then gosub calcul:op=1:return
if u>11 then op=u:gosub calcul:return
if op=1 then gosub init
if u=11 then gosub virgule:return
rem --------------------------------
if u=10 then u=0
if u=0 and text$(40)="0" then return
if b$="" then text 40,"0"
b$=b$+str$(u):text 40,b$
return
rem ----------------------------------------------------------
calcul:
if a$="" then a$=b$:b$=""
if b$="" then return
select op
  case 13:if val(b$)<>0 then a$=val(a$)/val(b$)
  case 12:a$=val(a$)*val(b$)
  case 15:a$=val(a$)-val(b$)
  case 16:a$=val(a$)+val(b$)
end_select
text 40,a$:b$=""
return
rem ---------------------------------------------
carre:
2d_pen_color 247,79,0
2d_rectangle t(u,1)-2,t(u,2)-2,t(u,1)+t(u,3)+2,t(u,2)+t(u,4)+2
wait 80
2d_pen_color c1,c2,c3
2d_rectangle t(u,1)-2,t(u,2)-2,t(u,1)+t(u,3)+2,t(u,2)+t(u,4)+2
return
rem ---------------------------------------------
virgule:
n=len(b$)
for i=1 to n
if mid$(b$,i,1)="." then v=1
next i
if n=0 then b$=b$+"0.":text 40,b$:return
if v=0 then b$=b$+".":text 40,b$
if v=1 then v=0:beep
return
rem ---------------------------------------------
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
rem ---------------------------------------------
couleur:
c1=rnd(255):c2=rnd(255):c3=rnd(255)
2d_pen_width 7:2d_fill_color c1,c2,c3
2d_pen_color 000,000,000:2d_rectangle 1,1,314,498
2d_pen_color 252,152,000:2d_rectangle 11,16,304,76
return
rem -------------------------------------------
init:
b$="":a$="":op=0
return
rem --------------------------------------------
fin:
terminate
return


Dernière édition par joeeee2017 le Ven 20 Oct 2017 - 22:11, édité 15 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 14 Oct 2017 - 14: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5062
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: mise a jour calculatrice   Sam 14 Oct 2017 - 14: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 => http://panoramic.free-boards.net/t5465-calculatrice#66728

Tu 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 - 19:28, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: Re: mise a jour calculatrice   Dim 15 Oct 2017 - 0: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5062
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: mise a jour calculatrice   Dim 15 Oct 2017 - 10: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 => http://panoramic.free-boards.net/t1498-structure-pour-un-programme-windows-1-4

Bonne lecture, tu verras que c'est très instructif et cela t'éviteras bien des pièges à l'avenir.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: bonjour/ bonne nuit mdr   Dim 15 Oct 2017 - 14:58

lol


Dernière édition par joeeee2017 le Lun 16 Oct 2017 - 1:40, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 15 Oct 2017 - 15:47

cheers 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...
Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5062
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: mise a jour calculatrice   Dim 15 Oct 2017 - 19:05

hé ! bravo, joeeee2017, tu viens de franchir un grand pas.  cheers

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 - 19:50, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: bonsoir   Dim 15 Oct 2017 - 19:48

merci pour vos commentaire aprés reflexion je viens de faire un copié collé merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5062
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: mise a jour calculatrice   Dim 15 Oct 2017 - 19: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 Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: re   Dim 15 Oct 2017 - 19:57

effacé


Dernière édition par joeeee2017 le Lun 16 Oct 2017 - 1:41, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: re   Dim 15 Oct 2017 - 20:08

je me trompe entre repondre et nouveau sujet si tu veux merci de supprimer le dernier sujet
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5062
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: mise a jour calculatrice   Dim 15 Oct 2017 - 21: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.  Very Happy

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 ici

Dans 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" => ici
c'est une mine d'or !

A+

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: bonjour   Lun 16 Oct 2017 - 19:42

je mets a jour regulierement le programme en haut de cette page
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5062
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: mise a jour calculatrice   Lun 16 Oct 2017 - 21:11

Merci pour l'info,

Je viens de tester. Tu as changé le mode de changement des couleurs pirat

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: re   Lun 16 Oct 2017 - 22: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: re   Lun 16 Oct 2017 - 22: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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: revoila u exemple de data crée   Lun 16 Oct 2017 - 23:00

Code:

dim a$,aa$,b$,c$,d$,v$,w$,x$,v1$
dim a,b,u,l,m,n,op,h,v,i,j
dim t(40,4),tx$(20),coul,c1,c2,c3

label calcul,fin,men1,men2,carre,virgule,euro,sauve,col,chaine
main_menu 20
sub_menu 21:caption 21,"Quitte":parent 21,20
sub_menu 22:caption 22,"couleur":parent 22,20
sub_menu 23:caption 23,"sauve":parent 23,20
on_click 21,fin:on_click 22,col:on_click 23,sauve


left 0,1000:top 0,1
width 0,337:height 0,572
caption 0,"Calculatrice"
color 0,236,233,216
rem  -------------------------------------------------------------------
data 013,271,065,065,088,271,065,065,163,271,065,065,013,196,065,065,088,196,065,065
data 163,196,065,065,013,121,065,065,088,121,065,065,163,121,065,065,013,346,065,065
data 088,346,065,065,238,196,065,065,238,121,065,065,163,346,065,065,238,271,065,065
data 238,346,065,065,013,421,290,065,013,085,065,026,231,085,065,026
rem  ----------------------------------------------------------------------
data "1","2","3","4","5","6","7","8","9","0",".","*","/","C","-","+","=","euro","franc"

for i=1 to 19:button i:read t(i,1):read t(i,2):read t(i,3):read t(i,4)
left i,t(i,1):top i,t(i,2)
width i,t(i,3):height i,t(i,4)
next i

for i=1 to 19
read tx$(i)
font_size i,25:caption i,tx$(i)
next i

edit 40
left 40,013:top 40,18
width 40,287:height 40,70
font_size 40,26:font_size 18,14:font_size 19,14

2d_pen_width 7:c1=204:c2=153:c3=0:gosub col
2d_pen_color 252,152,0:2d_rectangle 11,16,304,76
rem --------------------------------------------------------
inactive 18:gosub men2
for i=1 to 17:on_click i,men1:next i
on_click 18,euro
on_click 19,euro
on_click 14,men2
on_click 11,virgule
end
rem --------------------------------------------------------------
men1:
u=number_click:gosub carre
rem ----------------------------------
if u=17 then gosub calcul:op=2:a$="":return
if u>11 then gosub calcul:op=u:gosub calcul:return
if u=10 and b$="0" then return
if u=10 then u=0
rem ---------------------------------
if b$="" then text 40,""
b$=b$+str$(u):text 40,b$
return
rem ------------------------------------------------------------------
calcul:
if a$="" then a$=b$:b$=""
if b$="" then return
a=val(a$):b=val(b$)
if op=013 and b=0 then beep:text 40,a$:b$="":return
if op=12 then a=a*b
if op=13 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 ---------------------------------------------
carre:
2d_pen_color 247,79,0
2d_rectangle t(u,1)-2,t(u,2)-2,t(u,1)+t(u,3)+2,t(u,2)+t(u,4)+2
wait 80
2d_pen_color c1,c2,c3
2d_rectangle t(u,1)-2,t(u,2)-2,t(u,1)+t(u,3)+2,t(u,2)+t(u,4)+2
return
rem ---------------------------------------------
virgule:
n=len(b$)
for i=1 to n
if mid$(b$,i,1)="." then v=1
next i
if n=0 then b$=b$+"0.":text 40,b$:return
if v=0 then b$=b$+".":text 40,b$
if v=1 then v=0:beep
return
rem ---------------------------------------------
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
rem ---------------------------------------------
col:
c1=c1+12.75:if c1>254 then c1=0
c2=c2+25.5:if c2>254 then c2=0
c3=c3+51:if c3>254 then c3=0
2d_fill_color c1,c2,c3:2d_pen_color 0,0,0:2d_rectangle 1,1,314,498
return
rem -------------------------------------------
men2:
op=2:b$="":a$="":text 40,"0"
return
rem --------------------------------------------
fin:
terminate
return
rem -------------------------------------------------------------------------------------
sauve:
w$="data ":x$="
DIR_CHANGE DIR_CURRENT$
file_open_write 25,"DoneeCalc.txt"
rem ----------------------
for i=1 to 20 step  5
v$="data "
for j=0 to 4
gosub chaine
next j
v$=left$(v$,len(v$)-1)
file_writeln 25, v$
next i

rem ----------------------
for i=1 to 19:w$=w$+x$+tx$(i)+x$+",":next i
file_writeln 25, w$
rem ----------------------
file_close 25:message "un fichier nommé donée calc.txt vient d' etre créé "
return
rem ---------------------------------------------------------------------------------------
chaine:
for m=1 to 4
a=len(str$(t(i+j,m))):a=3-a:d$=""
if a>0 and a<3 then d$=string$(a,"0")
if val(str$(t(i+j,m)))<>0 then v$=v$+d$+str$(t(i+j,m))+","
next m
return



Dernière édition par joeeee2017 le Mar 17 Oct 2017 - 10:28, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5062
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: mise a jour calculatrice   Mar 17 Oct 2017 - 9:47

Bonjour à tous,

Je viens de regarder ton code joeeee2017,

Les opérations en continu fonctionnent.

Maintenant je comprends un peu mieux ton poste http://panoramic.free-boards.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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5992
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: mise a jour calculatrice   Mar 17 Oct 2017 - 14:14

Et même 'DonneeCalc.txt' ce serait encore mieux, mais bon...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5594
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: mise a jour calculatrice   Mar 17 Oct 2017 - 17: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_SELECT
Mais 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 +
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: re   Mer 18 Oct 2017 - 1:01

jai mis a jour la calculatrice en haut de cette page merci pour les infos
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: boniour   Mer 18 Oct 2017 - 10:43

j ai essayé avec select mais ça marche pas avec mon style de programme
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5594
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: mise a jour calculatrice   Mer 18 Oct 2017 - 15: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+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
joeeee2017



Nombre de messages : 28
Date d'inscription : 13/10/2017

MessageSujet: re   Mer 18 Oct 2017 - 15:57

merci je verais plutard
ça y est fait

ça dort ici
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: mise a jour calculatrice   

Revenir en haut Aller en bas
 
mise a jour calculatrice
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» mise a jour des pilotes, comment proceder?
» Dakota 20 - Mise a jour firmware 4.9 du 17/11/2011
» NUIVI 765T HS Rapatriement massif par GARMIN - Mise a jour GPS effectuée SUITE!!
» Mise a jour radars et aires de services pour un nuvi 255
» probleme suite a mise a jour sur oregon 450

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos projets-
Sauter vers: