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 |
|
|
| Conso-essence | |
| | Auteur | Message |
---|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Conso-essence Lun 8 Avr 2019 - 17:13 | |
| Vous connaissez la nouvelle ? J'ai une nouvelle voiture. J'ai abandonné mon vieux char qui datait (au moins) de l'antiquité égyptienne, et dont le compteur ne marchait même plus, les pièces de rechange n'existant plus... Maintenant, j'en ai une qui se veut écolo, même si elle n'est pas électrique. Alors, bien sûr, en bon écolo-responsable, je vais dorénavant calculer ma conso d'essence. D'où le programme qui suit (et dont je vous fais bénéficier, si besoin est) : - Code:
-
rem ' Logiciel de calcul de la conso d'essence de la voiture - 07/04/2019 ===== dim ECX% , ECY% : rem Emplacement du Curseur sur le grid en X et en Y dim IMG% : rem Indicateur de Modification du contenu du Grid dim IRN% : rem Indicateur du Rang du Nombre utilisé par la calculatrice dim IUE% : rem Indicateur d`Utilisation de la touche Egal dim NAU% : rem Nombre d`Années Utilisées dim NB$(2) : rem Nombres 1 et 2 de la calculatrice dim NBC$(16) : rem Nom des Boutons de la Calculatrice dim NDB$(6) : rem Nom Des Boutons dim OC% : rem Opération Choisie (1=+ 2=- 3=* 4=/) dim V1M% , V2M% : rem Variables à utilisation multiple dim VP$ : rem Version du programme IRN%=1 : VP$="V.070419.1.4" : NAU%=25 : ' Changer NAU% pour utiliser l'outil plus longtemps label clac : rem Différenciation de l`on-click label clic : rem Redirection de tous les on-click label close : rem Gestion de l`on-close label key : rem Gestion des on-key-down rem Form0 ===================================================================== width 0,1365 height 0,685 caption 0," Consomation d'essence de la voiture - par jjn4 - "+VP$ on_close 0,close for V1M% = 1 to 6 : read NDB$(V1M%) : next V1M% for V1M% = 1 to 16 : read NBC$(V1M%) : next V1M%
rem Affichage des éléments ==================================================== list 100 top 100,5 width 100,75 height 100,635 if NAU%<26 left 100,10 width 100,65 font_bold 100 end_if font_size 100,16 for V1M% = 2019 to 2018+NAU%-1 item_add 100,V1M% next V1M% on_click 100,clic grid 200 hide 200 left 200,75 top 200,5 width 200,610 height 200,635 font_size 200,16 font_name 200,"Terminal" grid_column 200,7 grid_column_width 200,80 grid_row 200,NAU% grid_one_column_width 200,1,110 if grid_row(200)>25 grid_one_column_width 200,5,72 grid_one_column_width 200,7,72 end_if on_click 200,clic edit 250 left 250,695 top 250,5 width 250,95 font_size 250,20 set_focus 250 on_key_down 250,key button 260 left 260,795 top 260,5 width 260,80 height 260,38 font_bold 260 font_size 260,20 font_name 260,"Arial" caption 260,"Go" on_click 260,clic inactive 260 rem Boutons de commande - Obj-syst n° 300 à 350 ---------------------------- for V1M% = 1 to 6 button V1M%*10+290 left V1M%*10+290,695 top V1M%*10+290,(V1M%-1)*100+46 width V1M%*10+290,180 height V1M%*10+290,96 font_bold V1M%*10+290 font_size V1M%*10+290,20 font_name V1M%*10+290,"Arial" caption V1M%*10+290,NDB$(V1M%) on_click V1M%*10+290,clic inactive V1M%*10+290 next V1M% active 340 active 350 rem Calculette ================================================================ panel 400 left 400,885 top 400,5 width 400,380 height 400,635 edit 410 parent 410,400 left 410,10 top 410,5 width 410,360 font_bold 410 font_size 410,20 font_name 410,"Arial" for V1M% = 1 to 4 : rem Obj-Syst n° 510=7 520=8 530=9 540=/ for V2M% = 1 to 4 : rem Obj-Syst n° 550=4 560=5 570=6 580=x button (V1M%-1)*40+V2M%*10+500 : rem Obj-Syst n° 590=1 600=2 610=3 620=- parent (V1M%-1)*40+V2M%*10+500,400 : rem Obj-Syst n° 630=0 640=. 650=C 660=+ left (V1M%-1)*40+V2M%*10+500,(V2M%-1)*90+10 top (V1M%-1)*40+V2M%*10+500,(V1M%-1)*100+54 width (V1M%-1)*40+V2M%*10+500,90 height (V1M%-1)*40+V2M%*10+500,100 font_bold (V1M%-1)*40+V2M%*10+500 font_size (V1M%-1)*40+V2M%*10+500,30 font_name (V1M%-1)*40+V2M%*10+500,"Arial" caption (V1M%-1)*40+V2M%*10+500,NBC$((V1M%-1)*4+V2M%) on_click (V1M%-1)*40+V2M%*10+500,clic next V2M% next V1M% button 670 : rem Touche = parent 670,400 left 670,10 top 670,455 width 670,360 height 670,100 font_bold 670 font_size 670,60 font_name 670,"Arial" caption 670,"=" on_click 670,clic switch1 680 : rem Switch entre calculatrice et clavier interne parent 680,400 left 680,10 top 680,560 width 680,360 height 680,70 caption 680,"Mode calculatrice|Mode clavier virtuel" on_click 680,clic end : ' Début des routines ====================================================
sub affiche() : rem Affiche les données initiales du grid ===================== grid_write 200,1,1," Date" grid_write 200,1,2," Kms" grid_write 200,1,3,"Diff Km" grid_write 200,1,4,"Cumul Km" grid_write 200,1,5,"Litres" grid_write 200,1,6,"Cumul L" grid_write 200,1,7," Conso" end_sub
sub aide() : rem Explications sur le fonctionnement du programme ============== dim_local v1ai$ application_title " Explications sur le fonctionnement du programme" v1ai$=" Comme son nom l'indique, Conso-essence sert à calculer la consommation"+chr$(13) v1ai$=v1ai$+"en essence de la voiture selon le kilométrage parcouru en ville et sur la route."+chr$(13) v1ai$=v1ai$+"Commencer d'abord par choisir une année, puis cliquer sur le bouton « Date »."+chr$(13) v1ai$=v1ai$+"Entrer ensuite les données (Kms et litres) dans la zone de dialogue, puis "+chr$(13) v1ai$=v1ai$+"cliquer sur « Go » ou taper sur la touche « Entrée » du clavier."+chr$(13) v1ai$=v1ai$+"Inutile d'entrer quoi que ce soit dans les colonnes de différence, de cumul ou de"+chr$(13) v1ai$=v1ai$+"conso, se contenter de cliquer sur « Go » et l'ordinateur se charge de faire le calcul."+chr$(13) v1ai$=v1ai$+"Pour connaître les totaux annuels, cliquer sur « Total »."+chr$(13)+chr$(13) v1ai$=v1ai$+" Une calculette est utilisable à côté du tableau de calcul de la consommation,"+chr$(13) v1ai$=v1ai$+"ceci pour d'éventuels calculs parallèles autres. Mais il est aussi possible de se"+chr$(13) v1ai$=v1ai$+"servir de l'équipement de la calculatrice comme d'un clavier virtuel pour alimenter"+chr$(13) v1ai$=v1ai$+"en données le tableau de calcul de consommation d'essence. Pour cela, presser"+chr$(13) v1ai$=v1ai$+"l'interrupteur bleu-vert. On peut aussi transformer la date du jour en utilisant"+chr$(13) v1ai$=v1ai$+"la calculatrice et en y inscrivant par exemple : « 27.04.2019 »,"+chr$(13) v1ai$=v1ai$+"et en cliquant ensuite, comme de coutume, sur le bouton « Date »." message v1ai$ end_sub
sub chiffre() : rem Ajouter un chiffre ======================================== if IUE%=1 vide() IUE%=0 end_if set_focus 410 text 410,text$(410)+NBC$((number_click-500)/10) NB$(IRN%)=NB$(IRN%)+NBC$((number_click-500)/10) end_sub
sub choix() : rem Choix de l`année ============================================ dim_local v1ch% if IMG%=1 v1ch%=message_confirmation_yes_no("Voulez-vous enregistrer vos modifications ?") if v1ch%=1 enreg() else IMG%=0 end_if end_if grid_clear 200,grid_row(200),7 affiche() if file_exists("CE-"+item_index$(100)+".txt")=1 grid_load 200,"CE-"+item_index$(100)+".txt" end_if show 200 for v1ch% = 1 to 4 active v1ch%*10+290 next v1ch% localise() set_focus 250 end_sub
clac: : rem Modification des on-click ========================================= select number_click case 260 : egal() case 670 : go() end_select return
clic: : rem Redirection de tous les on-click ================================== select number_click case 100 : choix() case 200 : repere() case 260 : go() case 300 : date() case 310 : total() case 320 : enreg() case 330 : imprim() case 340 : aide() case 350 : quitter() case 510 : chiffre() case 520 : chiffre() case 530 : chiffre() case 540 : divise() case 550 : chiffre() case 560 : chiffre() case 570 : chiffre() case 580 : multi() case 590 : chiffre() case 600 : chiffre() case 610 : chiffre() case 620 : moins() case 630 : chiffre() case 640 : point() case 650 : vide() case 660 : plus() case 670 : egal() case 680 : switch() end_select return
close: : rem Gestion de l`on-close ============================================ if IMG%=1 V1M%=message_confirmation_yes_no("Voulez-vous enregistrer avant de quitter ?") if V1M%=1 enreg() end_if end_if return
sub cumul() : rem Cumule les résultats en NB$(1) ============================== if NB$(2)<>"" select OC% case 1 : NB$(1)=str$(val(NB$(1))+val(NB$(2))) case 2 : NB$(1)=str$(val(NB$(1))-val(NB$(2))) case 3 : NB$(1)=str$(val(NB$(1))*val(NB$(2))) case 4 if val(NB$(2))<>0 NB$(1)=str$(val(NB$(1))/val(NB$(2))) end_if end_select end_if NB$(2)="" end_sub
rem Datas ===================================================================== data "Date" , "Total" , "Enreg" , "Imprim" , "Aide" , "Quitter" data "7" , "8" , "9" , "÷" , "4" , "5" , "6" , "×" data "1" , "2" , "3" , "_" , "0" , "," , "C" , "+" rem Fin des datas
sub date() : rem Affichage de la date du jour ================================= if len(text$(410))=10 and mid$(text$(410),3,1)="." and mid$(text$(410),6,1)="." grid_write 200,ECY%,ECX%,left$(text$(410),2)+"/"+mid$(text$(410),4,2)+"/"+right$(text$(410),4) else grid_write 200,ECY%,ECX%,date$ end_if ECX%=ECX%+1 grid_write 200,ECY%,ECX%,chr$(219) active 260 if caption$(670)="Go" active 670 end_if set_focus 250 text 410,"" end_sub
sub divise() : rem Opération de division ====================================== if NB$(2)<>"" cumul() end_if OC%=4 IRN%=2 text 410,"" IUE%=0 end_sub
sub egal() : rem Calcule le résultat de l`opération =========================== dim_local v1eg% , v2eg% , v3eg% for v1eg% = 1 to len(NB$(1)) if mid$(NB$(1),v1eg%,1)="." v2eg%=v2eg%+1 end_if if asc(mid$(NB$(1),v1eg%,1))<46 or asc(mid$(NB$(1),v1eg%,1))=47 v3eg%=1 end_if next v1eg% if v2eg%>1 v3eg%=1 end_if v2eg%=0 for v1eg% = 1 to len(NB$(2)) if mid$(NB$(2),v1eg%,1)="." v2eg%=v2eg%+1 end_if if asc(mid$(NB$(2),v1eg%,1))>57 v3eg%=1 end_if next v1eg% if v2eg%>1 v3eg%=1 end_if if v3eg%=0 if NB$(2)<>"" select OC% case 1 : text 410,str$(val(NB$(1))+val(NB$(2))) case 2 : text 410,str$(val(NB$(1))-val(NB$(2))) case 3 : text 410,str$(val(NB$(1))*val(NB$(2))) case 4 if val(NB$(2))<>0 text 410,str$(val(NB$(1))/val(NB$(2))) end_if end_select end_if NB$(1)=text$(410) NB$(2)="" IUE%=1 end_if end_sub
sub enreg() : rem Enregistre les données ====================================== dim_local v1en% , v2en% for v1en% = 2 to grid_row(200) for v2en% = 1 to 7 if grid_read$(200,v1en%,v2en%)=chr$(219) grid_write 200,v1en%,v2en%,"" end_if next v2en% next v1en% for v1en% = grid_row(200)-1 to 2 step -1 if grid_read$(200,v1en%,2)<>"" if numeric(grid_read$(200,v1en%,2))=1 file_open_write 1,"CE-Km.txt" file_writeln 1,grid_read$(200,v1en%,2) file_close 1 exit_for end_if end_if next v1en% grid_save 200,grid_row(200),7,"CE-"+item_index$(100)+".txt" hide 200 IMG%=0 end_sub
sub go() : rem Faire passer le chiffre entré vers le grid ===================== dim_local dk , ck , cl , cv : rem Diff-Km/Cumul-Km/Cumul-L/Conso-Voiture dim_local v1go% , v2go$ if text$(250)<>"" for v1go% = 1 to len(text$(250)) if mid$(text$(250),v1go%,1)="," text 250,left$(text$(250),v1go%-1)+"."+right_pos$(text$(250),v1go%+1) end_if next v1go% else text 250,"0" end_if if ECX%=3 if numeric(grid_read$(200,ECY%-1,ECX%-1))=1 and numeric(grid_read$(200,ECY%,ECX%-1))=1 dk=val(grid_read$(200,ECY%,ECX%-1))-val(grid_read$(200,ECY%-1,ECX%-1)) else if file_exists("CE-Km.txt")=1 file_open_read 1,"CE-Km.txt" file_readln 1,v1go% file_close 1 dk=val(grid_read$(200,ECY%,ECX%-1))-v1go% end_if end_if end_if if ECX%=4 for v1go% = 2 to ECY% if numeric(grid_read$(200,v1go%,ECX%-1))=1 ck=ck+val(grid_read$(200,v1go%,ECX%-1)) end_if next v1go% end_if if ECX%=6 for v1go% = 2 to ECY% if numeric(grid_read$(200,v1go%,ECX%-1))=1 cl=cl+val(grid_read$(200,v1go%,ECX%-1)) end_if next v1go% end_if if ECX%=7 if numeric(grid_read$(200,ECY%,5))=1 and numeric(grid_read$(200,ECY%,3))=1 and grid_read$(200,ECY%,3)<>"0" cv=(val(grid_read$(200,ECY%,5))/val(grid_read$(200,ECY%,3)))*100 end_if end_if if caption$(670)="Go" v2go$=text$(410) else v2go$=text$(250) end_if select ECX% case 2 : grid_write 200,ECY%,ECX%,v2go$ case 3 : grid_write 200,ECY%,ECX%,int(dk*100)/100 case 4 : grid_write 200,ECY%,ECX%,int(ck*100)/100 case 5 : grid_write 200,ECY%,ECX%,v2go$ case 6 : grid_write 200,ECY%,ECX%,int(cl*100)/100 case 7 : grid_write 200,ECY%,ECX%,int(cv*100)/100 end_select ECX%=ECX%+1 if ECX%>7 ECX%=1 ECY%=ECY%+1 inactive 260 if caption$(670)="Go" inactive 670 end_if end_if if grid_read$(200,ECY%,ECX%)="" grid_write 200,ECY%,ECX%,chr$(219) else if ECX%>1 grid_write 200,ECY%,ECX%,grid_read$(200,ECY%,ECX%)+chr$(219) end_if end_if text 250,"" text 410,"" set_focus 250 IMG%=1 end_sub
sub imprim() : rem Imprimer la page affichée ================================== dim_local v1im% v1im%=message_confirmation_yes_no("Voulez-vous réellement imprimer cette page ?") if v1im%=1 enreg() execute_wait "write.exe|/p CE-"+item_index$(100)+".txt" end_if end_sub
key: : rem Gestion des on-key-down ============================================ if key_down_code=13 trigger_click 260 end_if return
sub localise() : rem Localise la première ligne disponible ==================== dim_local v1lo% for v1lo% = 2 to grid_row(200) if grid_read$(200,v1lo%,1)="" ECY%=v1lo% exit_for end_if next v1lo% ECX%=1 grid_write 200,ECY%,ECX%,chr$(219) end_sub
sub moins() : rem Opération de soustraction =================================== if NB$(2)<>"" cumul() end_if OC%=2 IRN%=2 text 410,"" IUE%=0 end_sub
sub multi() : rem Opération de multiplication ================================= if NB$(2)<>"" cumul() end_if OC%=3 IRN%=2 text 410,"" IUE%=0 end_sub
sub plus() : rem Opération d`addition ========================================= if NB$(2)<>"" cumul() end_if OC%=1 IRN%=2 text 410,"" IUE%=0 end_sub
sub point() : rem Ajoute une virgule au nombre ================================ if IUE%=1 vide() IUE%=0 end_if set_focus 410 text 410,text$(410)+"." NB$(IRN%)=NB$(IRN%)+"." end_sub
sub quitter() : rem Quitter le programme ====================================== dim_local v1qu% if IMG%=1 v1qu%=message_confirmation_yes_no("Voulez-vous enregistrer vos modifications ?") if v1qu%=1 enreg() end_if end_if v1qu%=message_confirmation_yes_no("Voulez-vous réellement quitter ce programme ?") if v1qu%=1 terminate end_if end_sub
sub repere() : rem Repère l`emplacement du curseur sur le grid ================ dim_local v1re% , v2re% ECX%=grid_x_to_column(200,mouse_x_position(200)) ECY%=grid_y_to_row(200,mouse_y_position(200)) for v1re% = 2 to grid_row(200) for v2re% = 1 to 7 if right$(grid_read$(200,v1re%,v2re%),1)=chr$(219) grid_write 200,v1re%,v2re%,left$(grid_read$(200,v1re%,v2re%),len(grid_read$(200,v1re%,v2re%))-1) end_if next v2re% next v1re% text 250,grid_read$(200,ECY%,ECX%) grid_write 200,ECY%,ECX%,grid_read$(200,ECY%,ECX%)+chr$(219) set_focus 250 active 260 if caption$(670)="Go" active 670 end_if end_sub
sub switch() : rem Passage du mode calculette à clavier tactile =============== if checked(680)=1 caption 670,"=" active 670 on_click 670,clic vide() set_focus 250 else caption 670,"Go" if active(260)=1 active 670 else inactive 670 end_if on_click 670,clac end_if end_sub
sub total() : rem Totalise les kms litres et conso ============================ dim_local v1to% dim_local tk , tl , tc : rem Total Kilomètres/Total Litres/Total consommation for v1to% = grid_row(200)-1 to 2 step -1 if grid_read$(200,v1to%,4)<>"" if numeric(grid_read$(200,v1to%,4))=1 tk=val(grid_read$(200,v1to%,4)) exit_for end_if end_if next v1to% for v1to% = grid_row(200)-1 to 2 step -1 if grid_read$(200,v1to%,6)<>"" if numeric(grid_read$(200,v1to%,6))=1 tl=val(grid_read$(200,v1to%,6)) exit_for end_if end_if next v1to% grid_write 200,grid_row(200),1," Totaux =" grid_write 200,grid_row(200),4,tk grid_write 200,grid_row(200),6,tl if tk>0 tc=(tl/tk)*100 grid_write 200,grid_row(200),7,int(tc*100)/100 end_if end_sub
sub vide() : rem Vide l`écran de la calculatrice et les réserves ============== NB$(1)="" NB$(2)="" IRN%=1 text 410,"" set_focus 410 end_sub
Dites-moi si vous voyez des erreurs... D'autant que j'en ai profité pour improviser une calculatrice-maison qui peut toujours servir, et qui a peut-être encore des imperfections... Merci d'avance. <--- Observez que le clignotant fonctionne aussi !
Dernière édition par jjn4 le Jeu 11 Avr 2019 - 18:03, édité 3 fois | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Conso-essence Lun 8 Avr 2019 - 19:09 | |
| Salut à tous ! @Jjn4 Très sympa ton programme ! Et j'aime bien ton bouton à bascule ! Il manquerait quelques contrôles de saisie si tu souhaites diffuser ton programme. En tout cas, bravo ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Conso-essence Mar 9 Avr 2019 - 14:34 | |
| On en est déjà à la version 1.2 (pour ceux qui ont téléchargé les versions précédentes) Il restait quelques petits oublis et bugs... Merci Marc ! - Marc a écrit:
- Il manquerait quelques contrôles de saisie
Quels contrôles, par exemple ? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Conso-essence Mar 9 Avr 2019 - 15:02 | |
| Salut Jjn4 !
Je n'ai pas essayé ta nouvelle version, mais je le ferai ce soir.
De mémoire, dans ta première version, la croix rouge du FORM 0 quittait le programme brutalement sans prévenir qu'il fallait sauvegarder. Les zones de saisie n'étaient pas sécurisées : possibilité de mettre 2 virgules dans la machine à calculer, division par zéro plante le programme...
Si c'est un programme que pour toi, pas de problème, tu sais ce qu'il ne faut pas faire. Mais si c'est un programme destiné à être partagé, l'utilisateur lambda ne doit pas pouvoir planter le programme par des saisies inappropriées.
Autrement, le nombre de lignes à l'année m'a paru trop limité. Toujours de mémoire, je crois que tu as prévu "que" 23 passages à la pompe dans l'année.
Bref, j'approfondirai ce soir si tu le souhaites.
Bonne programmation ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Conso-essence Mer 10 Avr 2019 - 16:48 | |
| Salut Marc et merci pour tes remarques. C'est vrai que j'ai fait le programme d'abord pour moi et sur le mini-ordi de rechange en attendant que l'autre soit réparé. Et après, j'ai eu l'idée de le socialiser pour en faire profiter d'autres. De ce fait, il est quand même un peu vite fait. La croix rouge à sécuriser ne me semblait pas utile pour inscrire une donnée tous les 3 mois (hors vacances), mais tu as raison, autant qu'il soit ++ Alors, c'est fait, c'est sécurisé. La division par zéro aussi. La possibilité de mettre + d'une virgule n'est plus possible. Le nombre d'entrée est limité à 23, c'est vrai, pour moi qui est à la retraite et avec une voiture super économique, hors vacances, cela devrait suffire. Mais pour ceux qui roulent beaucoup, il y a la possibilité prévue de modifier la variable NAU% (ligne 13) et d'y mettre des centaines de lignes d'entrée de carburant dans l'année pour des centaines d'années… (pour ceux qui roulent beaucoup et ont une confiance dans leur espérance de vie absolument increvable) N'hésite pas à me dire si tu vois autre chose ! (car avec une voiture tellement économique, je ne vais pas m'en servir bp) | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: Conso-essence Mer 10 Avr 2019 - 18:56 | |
| bonjour a tous. je vais pouvoir passer une image car mon problème d'hebergement est résolu. concernant la conso -essence j'aimerai vous montrer deux images de ma conso-essence. yannick va être content car c'est un début de mon code modifié par lui et que j'ai adapté pour moi qui donne ceci. je vais faire un petit texte explicatif ensuite | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Conso-essence Mer 10 Avr 2019 - 23:22 | |
| Bonsoir Jjn4 ! Bonsoir RMont ! Bonsoir à tous ! @Jjn4 Merci pour les explications. J’ai remarqué qu’un double "=" après une opération quelconque plante le programme. Par exemple : Je clique sur 1Je clique sur +Je clique sur 2Je clique sur =Je clique sur =et là : Autres remarques : Lors du lancement du programme, le commutateur est sur Mode Calculatrice. Les entrées du clavier du PC sont dirigées vers l’EDIT 250. Si je bascule sur Mode Clavier Virtuel et que je reviens sur Mode Calculatrice, les entrées du clavier du PC sont maintenant dirigées vers l’afficheur de la calculatrice (EDIT 410). Je n’ai pas réussi à faire fonctionner la calculatrice avec le clavier du PC. => Mais est-ce un programme qui autorisera l’utilisation du clavier du PC ? Peut-être souhaites-tu n’autoriser le fonctionnement qu’avec le clavier virtuel ? Juste une remarque hors sujet pour RMont : bravo pour ton programme ! La représentation graphique de la conso apporte une touche très pro. Bonne continuation ! | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: Conso-essence Jeu 11 Avr 2019 - 18:04 | |
| bonjour a tous. conso-essence :si cela peu vous interesser voici le code - Code:
-
' dépense,conso et moyenne pour ma Citroen c4 ' error_french
variables() :' en ligne 14 labels() :' en ligne 66 gui() :' en ligne 72 init() :' en ligne 229
end
' -----------------------------------------------------------------------------
sub variables() :' vient de 5 dim_local i%
dim Path$ : Path$=dir_current$ :' retourne le repertoire courant if right$(Path$,1)="\" : Path$=left$(Path$,len(Path$)-1) : end_if Path$=Path$+"\" dim Param$ : Param$= Path$+"Param.inf" dim ListeV$ : ListeV$=Path$+"ListeV.txt" :' pour villes dim ListeC$ : ListeC$=Path$+"ListeC.txt" :' pour citroen C4 dim Histo$ : Histo$ =Path$+"Histo.txt" dim PathCar$: PathCar$=Path$+"Vehicules\"
dim KGF$
dim no% :' no% ---> pour numéroter ,incrémenter les objets dim Mm% : no%=no%+1 : Mm%=no% :' donc main menu = 1 dim Sm%(11) : for i%=1 to 11 : no%=no%+1 : Sm%(i%)=no% : next i% :' sous/menu de Main menu donc objets 2 a 12 dim Pan%(4) : for i%=0 to 4 : no%=no%+1 : Pan%(i%)=no% : next i% :' panels de récup des dimensions de travail du form 0: donc objets 13 a 17
dim Alph%(7) : for i%=1 to 7 : no%=no%+1 : Alph%(i%)=no%: next i% :' pour alpha donc objets 18 a 24 dim Edi%(6) : for i%=1 to 6 : no%=no%+1 : Edi%(i%)=no% : next i% :' pour edit donc objets 25 a 30 dim Comb% : no%=no%+1 : Comb%=no% :' pour combo donc objet 31 dim BtnCpt% : no%=no%+1 : BtnCpt%=no% :' pour bouton donc objet 32 dim Btn% : no%=no%+1 : Btn%=no% :' pour button donc objets 33 dim Gril% : no%=no%+1 : Gril%=no% :' pour donc objet 34 dim Mem% : no%=no%+1 : Mem%=no% :' pour donc objet 35 dim MemV% : no%=no%+1 : MemV%=no% :' pour donc objet 36 dim ApanTtl%(4): for i%=1 to 4 : no%=no%+1 : ApanTtl%(i%)=no% : next i% :' pour donc objets 37 a 41
dim Odial% : no%=no%+1 : Odial%=no% :' pour Open dialogue objet 42
dim F_OW% : no%=no%+1 : F_OW%=no% :' pour File_open_write objet 43 dim F_OR% : no%=no%+1 : F_OR%=no% :' pour File_open_read objet 44
dim NbreR% :' nombre de lignes du grid dim NbreC% :' nombre de colonnes du grid dim Car$
dim distparcourue dim TotalKm : TotalKm = 0 :' pour compteur total dim dist dim conso dim conso100 dim consototale dim TotalEuro : TotalEuro = 0 dim prixlit dim moyengene dim Minter : ' = moyenne intermediaire end_sub
' ------------------------------------------------------------------------------
sub labels() :' vient de 6 label clic , close , affichage end_sub
' -------------------------------------------------------
sub gui() :' vient de 7 dim_local h%,w%,t%,a$,i%,l%,b$
height 0,665 width 0,1330 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 caption 0,"CONSOMMATION CARBURANT de ma " on_close 0,close
main_menu Mm% ' menu n°1 sub_menu Sm%(1) : parent Sm%(1),Mm% : caption Sm%(1),"Véhicule" :' objet n°1 sub_menu Sm%(2) : parent Sm%(2),Sm%(1): caption Sm%(2),"Nouveau" : on_click Sm%(2),clic :' objet n°2 lignes 294 sub_menu Sm%(3) : parent Sm%(3),Sm%(1): caption Sm%(3),"Ouvrir" : on_click Sm%(3),clic :' objet n°3 lignes 299 sub_menu Sm%(4) : parent Sm%(4),Sm%(1): caption Sm%(4),"Enregistrer" : on_click Sm%(4),clic :' objet n°4 lignes 304 sub_menu Sm%(5) : parent Sm%(5),Sm%(1): caption Sm%(5),"-" :' objet n°5 sub_menu Sm%(6) : parent Sm%(6),Sm%(1): caption Sm%(6),"Quitter" : on_click Sm%(6),clic :' objet n°6 lignes 309 ' menu 2 sub_menu Sm%(7) : parent Sm%(7),Mm% : caption Sm%(7),"Affichage" :' objet 8 sub_menu Sm%(8) : parent Sm%(8),Sm%(7): caption Sm%(8),"Table" : mark_on Sm%(8) : on_click Sm%(8),clic :' objet 9 ligne 314 sub_menu Sm%(9) : parent Sm%(9),Sm%(7): caption Sm%(9),"Graphique" : mark_off Sm%(9): on_click Sm%(9),clic :' objet 10 ligne 322 ' menu n°3 sub_menu Sm%(10) : parent Sm%(10),Mm% : caption Sm%(10),"Paramètres" :' objet n°10 sub_menu Sm%(11) : parent Sm%(11),Sm%(10): caption Sm%(11),"KGF.dll - Rechercher sur PC" : on_click Sm%(11),clic :' objet n°11 lignes 335
panel Pan%(0) :' objet 12 full_space Pan%(0) h%=height(Pan%(0)) w%=width(Pan%(0))
panel Pan%(1) :' objet 13 , c'est la partie gauche là ou est le questionnaire parent Pan%(1),Pan%(0) height Pan%(1),h%-24 width Pan%(1),270 top Pan%(1),0 left Pan%(1),0 color Pan%(1),251,208,175 a$=" DATE, LIEU, QUANTITE MISE, MONTANT €, COMPTEUR KM TOTAL, " t%=-30 for i%=1 to 5 t%=t%+50 alpha Alph%(i%) parent Alph%(i%),Pan%(1) top Alph%(i%),t% left Alph%(i%),10 caption Alph%(i%),left$(a$,instr(a$,",")-1) if i%<5 a$=right$(a$,len(a$)-instr(a$,",")) end_if font_name Alph%(i%),"Times new roman" font_bold Alph%(i%) next i%
t%=-15 for i%=1 to 4 :' 4 éléments on saute le combo pour le " lieu " edit Edi%(i%) parent Edi%(i%),Pan%(1) color Edi%(i%),254,240,205 if i%=2 t%=t%+100 else t%=t%+50 if i%=1 or i%=4 or i%=5 width Edi%(i%),90 end_if end_if top Edi%(i%),t% left Edi%(i%),10 font_name Edi%(i%),"Arial" next i%
combo Comb% :' c'est le 5em élément qui correspond a " lieu " parent Comb%,Pan%(1) top Comb%,85 left Comb%,10 width Comb%,250 font_name Comb%,"Arial" font_size Comb%,10 color Comb%,254,240,205 if file_exists(ListeV$)=1 : file_load Comb%,ListeV$ : end_if l%=width(Pan%(1))-151 a$="<," b$="Enregistrer les données," :' formulaire," button Btn% :' objets 32 parent Btn%,Pan%(1) height Btn%,42 width Btn%,42 top Btn%,height(Pan%(1))-47 left Btn%,l% font_name Btn%,"Wingdings" font_size Btn%,12 caption Btn%,a$ hint Btn%,b$ cursor_point Btn% on_click Btn%,clic
panel Pan%(2) :' objet 15 parent Pan%(2),Pan%(0) height Pan%(2),h%-24 width Pan%(2),w%-270 top Pan%(2),0 left Pan%(2),270 color Pan%(2),251,108,105
Grid Gril% :' objet 35 parent Gril%,Pan%(2) height Gril%,height(Pan%(2))-20 width Gril%,width(Pan%(2))-20 top Gril%,10 left Gril%,10 font_name Gril%,"Arial" NbreR% =2 NbreC% =8 InitialiseGrid(NbreR%,NbreC%) :' en ligne 266 color Gril%,254,240,205 inactive Gril%
panel Pan%(3) :' objet 16 parent Pan%(3),Pan%(0) height Pan%(3),24 width Pan%(3),w% top Pan%(3),h%-24 left Pan%(3),0 color Pan%(3),51,208,105
l%=-230 for i%=1 to 4 l%=l%+300 Alpha ApanTtl%(i%) parent ApanTtl%(i%),Pan%(3) top ApanTtl%(i%),5 left ApanTtl%(i%),l% font_name ApanTtl%(i%),"Arial" font_size ApanTtl%(i%),10 font_bold ApanTtl%(i%) next i% Create_hide panel Pan%(4) :' objet 17 pour le graphique parent Pan%(4),Pan%(0) height Pan%(4),h%-24 width Pan%(4),w%-270 top Pan%(4),0 left Pan%(4),270 color Pan%(4),255,255,255
dlist Mem% dlist MemV% if file_exists(ListeV$)=1 : file_load Comb%,ListeV$ : end_if end_sub
' ------------------------------------------------------------------------------
sub init() :' vient de 8 dim_local a$
if dir_exists(PathCar$)=0 then dir_make PathCar$ if file_exists(ListeC$)=1 : file_load Mem%,ListeC$ : end_if
if file_exists(Param$)=0 if file_exists(Kgf$)=0 if message_warning_yes_no("La dll KGF.dll n' a pas été trouvée !"+Chr$(13)+"Voulez vous indiquer son emplacement sur votre ordinateur ?")=1 Open_dialog Odial% dir_dialog Odial%,"C:\" filter Odial%,"*.dll|*.dll" a$=file_name$(Odial%) delete Odial%
if a$<>"_" KGF$=a$ file_open_write F_OW%,Param$ file_writeln F_OW%,KGF$ file_close F_OW% else Message "Vous ne disposez pas de cette dll."+chr$(13)+"Vous pouvez la télécharger à cette adresse :"+chr$(13)+"http://klauspanoramic.comxa.com/versions/KGF.zip" inactive Sm%(9) end_if else inactive Sm%(9) end_if end_if else File_open_read F_OR%,Param$ file_readln F_OR%,KGF$ file_close F_OR% end_if end_sub
' ------------------------------------------------------------------------------
sub InitialiseGrid(R%,C%) :' vient de 188 - dim_local i%,a$ a$=" DATE, LIEU, QUANTITE MISE, MONTANT €, COMPTEUR KM TOTAL, PRIX € / L, DIST PARCOURUE , MOYENNE /100, "
grid_row_fixed Gril%,1 grid_column_fixed Gril%,0 grid_row Gril%,R% :' 2 lignes grid_column Gril%,C% :' 8 colonnes grid_one_column_width Gril%,1,100 :' pour date grid_one_column_width Gril%,2,190 :' pour lieu grid_one_column_width Gril%,3,120 :' pour quantité mise grid_one_column_width Gril%,4,90 :' pour montant grid_one_column_width Gril%,5,160 :' compteur km total grid_one_column_width Gril%,6,80 :' pour prix au litre grid_one_column_width Gril%,7,140 :' pour distance parcourue grid_one_column_width gril%,8,130 :' moyenne aux 100 for i%=1 to 8 grid_write Gril%,1,i%,left$(a$,instr(a$,",")-1) if i%<8 a$=right$(a$,len(a$)-instr(a$,",")) end_if next i% end_sub
' -----------------------------------------------------------------------------
clic: :' vient de 85,86,87,89,92,93,96 if number_click = Sm%(2):' vient de 85 NewCar() :' ligne 348 ---> pour moi Citroen C4 return end_if
if number_click = Sm%(3) :' vient de 86 OpenCar() :' en ligne 586 * ---> ma C4 return end_if
if number_click = Sm%(4) :' vient de 87 SaveCar() :' en ligne 578 ---> ma C4 return end_if
if number_click = Sm%(6) :' vient de 89 Quitter() :' en ligne 589 return end_if
if number_click = Sm%(8) :' vient de 92 mark_on Sm%(8) mark_off Sm%(9) hide Pan%(4) show Pan%(2) return end_if
if number_click = Sm%(9) :' vient de 93 if Car$<>"" mark_on Sm%(9) mark_off Sm%(8) hide Pan%(2) show Pan%(4) Histogramme() :' en ligne 666 else message "Vous devez ouvrir ou créer un fichier !" end_if return end_if
if number_click = Sm%(11) :' vient de 96 FindKgfdll() :' en ligne 718 return end_if
if number_click = Btn% SaveFormulaire() :' en ligne 385 return end_if return
' -----------------------------------------------------------------------
sub NewCar() :' vient 295
dim_local a$,b$,v%,i%
if message_input("Nouveau véhicule","Marque , Modèle","")=1 :' **** a$=message_text$ :' * :' * if a$<>"" :' *************************************** * Car$=a$ :' * * Car$=upper$(Car$) :' * * if count(Mem%)>0 :' ****************** * * for i%=1 to count(Mem%) :' * * * b$=item_read$(Mem%,i%) :' * * * if b$=Car$ :' ***** * * * v%=1 :' * * * * exit_for :' * * * * end_if :' ***** * * * next i% :' * * * if v%=0 :' ************ * * * item_add Mem%,Car$ :' * * * * file_save Mem%,ListeC$ :' * * * * end_if :' ************ * * * else :' * * * item_add Mem%,Car$ :' * * * file_save Mem%,ListeC$ :' * * * end_if :' ******************** * * end_if :' *************************************** * :' * caption 0,"CONSOMMATION CARBURANT de ma "+Car$ :' * active Btn% :' * active Gril% :' * :' * end_if :' ******************************************************** end_sub
' -----------------------------------------------------------------------------
sub SaveFormulaire() :' vient de 341 dim_local i%,a$,v%,mes$,M$,prixlit$
mes$="Format de date invalide ! (jj/mm/aaaa)" ' verif du format de la date if text$(Edi%(1))<>"" if numeric(left$(text$(Edi%(1)),2))=0 or numeric(mid$(text$(Edi%(1)),4,2))=0 or numeric(right$(text$(Edi%(1)),4))=0 message mes$ exit_sub else if mid$(text$(Edi%(1)),3,1)<>"/" or mid$(text$(Edi%(1)),6,1)<>"/" message mes$ exit_sub end_if end_if else message mes$ exit_sub end_if
' ajout d' une ville dans la liste if count(MemV%)>0 v%=0 for i%=1 to count(MemV%) a$=item_read$(MemV%,i%) if a$=text$(Comb%) v%=1 exit_for end_if next i% if v%=0 item_add MemV%,text$(Comb%) file_save MemV%,ListeV$ file_load Comb%,ListeV$ end_if else item_add MemV%,text$(Comb%) file_save MemV%,ListeV$ file_load Comb%,ListeV$ end_if
' validité compteur km, quantité mise, montant, prix/l for i%=2 to 4 if text$(Edi%(i%))="" Message "Vous n'avez pas renseigner le champ "+caption$(alph%(i%+1))+chr$(13)+"Les calculs sont impossibles." exit_sub end_if next i%
' calcul Moy au 100 intermédiaire if len(grid_read$(Gril%,2,1))>0 NbreR%=NbreR%+1 grid_row_insert Gril%,NbreR% end_if ConsoMoyenInter() :' en ligne 459
if Minter <> 0 : M$=str$(Minter) : else : M$="" : end_if :' m$ pour la moyenne de la conso if prixlit <> 0 : prixlit$=str$(prixlit) : else : prixlit$="" : end_if :' prixlit= prix au litre
grid_write Gril%,NbreR%,1,text$(Edi%(1)) :' date grid_write Gril%,NbreR%,2,text$(Comb%) :' lieu du complément grid_write Gril%,NbreR%,3,text$(Edi%(2)) :' quantité mise grid_write Gril%,NbreR%,4,text$(Edi%(3)) :' montant € grid_write Gril%,NbreR%,5,text$(Edi%(4)) :' compteur km total grid_write Gril%,NbreR%,6,prixlit$ :' prix au litre grid_write Gril%,NbreR%,7,distparcourue :' distance parcourue grid_write Gril%,NbreR%,8,M$ :' pour la conso moyenne au 100
Calculer() :' en ligne 520
end_sub
' ------------------------------------------------------------------------------
sub ConsoMoyenInter() :' vient de 439
if NbreR% = 2 :' c'est le 1er enregistrement message " Citroen a mis pour 35€ d'essence ce qui correspond a 30 litres environ " conso = val(text$(edi%(2))) consototale=consototale+conso totaleuro=val(text$(edi%(3))) prixlit = val(text$(edi%(3)))/conso prixlit=prixlit*1000 : prixlit=int(prixlit)/1000 gosub affichage end_if if NbreR% = 3 :' 2em enregistrement message " garage citroen --->leclerc pour complèment de plein.j'ai mis 28,36 litres pour 34 euros" conso = val(text$(edi%(2))) prixlit=val(text$(edi%(3)))/conso prixlit=prixlit*1000 : prixlit=int(prixlit)/1000 consototale=consototale+conso totaleuro=totaleuro+val(text$(edi%(3))) gosub affichage end_if if NbreR% =4 : ' debut des vrais calculs distparcourue = val(text$(Edi%(4))) totalkm = val(text$(Edi%(4))) dist = val(text$(Edi%(4))) ' --- conso = val(text$(edi%(2))) :' correspond à qté mise entre 2 complèments de plein consototale=consototale+conso ' ---- totaleuro=totaleuro+val(text$(edi%(3))) prixlit=val(text$(edi%(3)))/conso prixlit=prixlit*1000 : prixlit=int(prixlit)/1000 ' --- Minter = (conso/distparcourue)*100 :' corespond à la moyenne Minter=Minter*100 : Minter=int(Minter)/100 gosub affichage :' en ligne 576 end_if ' -------------------------------------------
if NbreR% =>5 ' kilometrage total et parcourue entre 2 pleins totalkm = val(text$(Edi%(4))) distparcourue = totalkm - val(grid_read$(gril%,NbreR%-1,5)) ' prix au litre et conso intermediaire et totale conso =val(text$(edi%(2))) consototale=consototale+conso prixlit=val(text$(edi%(3)))/conso ' ---- Minter =(conso/distparcourue)*100 ' ----- Minter=Minter*100 : Minter=int(Minter)/100 prixlit=prixlit*1000 : prixlit=int(prixlit)/1000 end_if gosub affichage end_sub
' --------------------------------------------------
sub calculer() :' vient de 455 dim_local a$,b$,c$,d$,i% if nbrer%=2 b$ = grid_read$(gril%,2,3) :' lecture de quatité mise consototale = val(b$) :' pour affichage dans barre inferieure c$ = grid_read$(gril%,2,4) :' lecture de montant en euros totaleuro = val(c$) :' pour affichage dans barre inferieure gosub affichage end_if if NbreR%=3 b$ = grid_read$(gril%,3,3) conso=val(b$) consototale=val(b$)+val(grid_read$(gril%,NbreR%-1,3)) c$ = grid_read$(gril%,3,4) totaleuro = val(c$)+val(grid_read$(gril%,NbreR%-1,4)) gosub affichage end_if ' --------------------------------------------------- if NbreR%=>4 ' nombre total de km parcourus totalkm=val(grid_read$(gril%,NbreR%,5)) ' conso essence sur parcours intermédiaire b$ = grid_read$(Gril%,nbrer%,3) :' qté mise conso=val(b$) ' dépense en euros et consommation totale totaleuro = 0 : consototale = 0 for i%= 2 to NbreR% b$ = grid_read$(gril%,i%,4) totaleuro=totaleuro+val (b$) c$ = grid_read$(gril%,i%,3) consototale = (consototale)+val(c$) next i% consototale=consototale-58.36 ' moyenne générale Conso100 = (Conso /TotalKm)*100 Conso100 = Conso100*100 Conso100 = int(Conso100)/100 moyengene=(consototale/totalkm)*100 moyengene=moyengene*100 moyengene=int(moyengene)/100 gosub affichage end_if end_sub
' ------------------------------------------------------------------------------
affichage:
caption ApanTtl%(1),"Kilomètrage total : "+str$(TotalKm)+" Km" caption ApanTtl%(2),"Dépense totale : "+str$(TotalEuro)+" €" caption ApanTtl%(3),"Consommation totale : "+str$(consototale)+" L" caption ApanTtl%(4),"Moyenne générale : "+str$(moyengene)+" L/100 km" return
' -------------------------------------------------------------------
close: :' vient de fermeture croix if message_warning_yes_no("Un fichier est en cours d' utilisation !"+chr$(13)+"Voulez vous sauvegarder vos modifications ?")=1 grid_save Gril%,NbreR%,NbreC%,PathCar$+Car$+".car" end_if return
' ------------------------------------------------------------------------------
sub OpenCar() :' vient de 300 dim_local a$,f$,r$,c$ ,dist Open_dialog Odial% dir_dialog Odial%,PathCar$ filter Odial%,"*.car|*.car" :' filter Odial%,"*.car|*.txt" oté le .txt le 02/10/17 remplacé par car a$=file_name$(Odial%) delete Odial%
if a$<>"_" f$=a$ Car$=file_extract_name$(a$) Car$=left$(Car$,len(Car$)-4) file_open_read F_OR%,f$ file_readln F_OR%,r$ NbreR%=val(r$) :' c'est a dire 2 ' NbreR% = NbreR%+1 :' rajouté le 20/01 file_readln F_OR%,c$ NbreC%=val(c$) file_close F_OR% InitialiseGrid(NbreR%,NbreC%) grid_load Gril%,f$ caption 0,"CONSOMMATION CARBURANT de ma "+" - "+Car$ active Btn% active Gril%
calculer() :' en ligne 49 end_if end_sub
' ------------------------------------------------------------------------------
sub SaveCar() :' vient de 305,641 dim_local f$ if Car$<>"" f$= PathCar$+Car$+".car" grid_save Gril%,NbreR%,NbreC%,f$ end_if ' initialisation du formulaire ClearFormulaire() :' en ligne
end_sub
' -----------------------------------------------------------------
sub ClearFormulaire() :' vient de dim_local i% for i%=1 to 4 : text Edi%(i%),"" : next i% text comb%,"" end_sub
' ----------------------------------------------------------------------------
sub Quitter() :' vient de 310 if message_warning_yes_no("Un fichier est en cours d' utilisation !"+chr$(13)+"Voulez vous sauvegarder vos modifications ?")=1 SaveCar() :' en ligne 618 end_if Terminate end_sub
' ------------------------------------------------------------
sub Histogramme() :' vient de 328 dim_local res% CreateHistoFile() dll_on kgf$ res% = dll_call2("Histogramme",adr(Histo$),handle(Pan%(4))) dll_off file_delete Histo$ end_sub
' -----------------------------------------------------------------------
sub CreateHistoFile() dim_local i%,a$,v% ' message " je suis dans créatehistofile " file_open_write F_OW%,Histo$ file_writeln F_OW%,"#Type=LINE" file_writeln F_OW%,"#Bord droit=17" file_writeln F_OW%,"#Bord bas=38" file_writeln F_OW%,"#Largeur fenêtre="+str$(width(Pan%(4))-50) file_writeln F_OW%,"#Hauteur fenêtre="+str$(height(Pan%(4))-50) file_writeln F_OW%,"#Style=2D" file_writeln F_OW%,"#Grille=H" ' file_writeln F_OW%,"#Légendes" file_writeln F_OW%,"#Largeur=1" file_writeln F_OW%,"#Séries=1" file_writeln F_OW%,"#Valeurs="+str$(NbreR%-1) file_writeln F_OW%,"#Données=1" for i%=2 to NbreR% a$=grid_read$(Gril%,i%,8) if a$="" then a$="0" v%=val(a$)*100 separator_is_comma a$=str$(int(v%)/100) file_writeln F_OW%,a$ separator_is_point next i% file_writeln F_OW%,"#Minimum Y=0" file_writeln F_OW%,"#Maximum Y=10" :' 30 file_writeln F_OW%,"#Ecart Y=1" file_writeln F_OW%,"#Légende Y=0" file_writeln F_OW%,"#Titres" file_writeln F_OW%,"Haut=Evolution de la consommation" file_writeln F_OW%,"Gauche=Conso. en Litres / 100 Km" file_writeln F_OW%,"Bas=Relevés" ' file_writeln F_OW%,"Droite=Divers" file_writeln F_OW%,"#Légendes séries" file_writeln F_OW%,"Carburant" file_close F_OW% end_sub
| |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Conso-essence Jeu 11 Avr 2019 - 18:08 | |
| Merci Marc pour toutes ces remarques pointues. Voici (plus haut) une version 1.4 qui corrige tout cela (sauf le fonctionnement de la calculette qui est prévue pour du tactile). @RMont : Joli, le programme de conso essence ! Ca, c'est pour ceux qui se servent beaucoup de leur voiture ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 12 Avr 2019 - 23:01 | |
| Petite remarque... Il est possible d' entrer et d'enregistrer des valeurs dans le tableau sans même avoir ouvert un fichier ou en avoir créé un. - Il serait judicieux que le fonctionnement du bouton d' enregistrement soit conditionné à l'ouverture ou la création d'un fichier voiture ainsi que celui d'enregistrement dans le menu. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Sam 13 Avr 2019 - 17:49 | |
| - Yannick a écrit:
- Il serait judicieux que le fonctionnement du bouton d' enregistrement soit conditionné à l'ouverture ou la création
d'un fichier voiture ainsi que celui d'enregistrement dans le menu C'est automatique, tu entre le kilométrage de départ et rien d'autre et le fichier se formate. Et ensuite, tu ajoutes tes consos d'essence. Ah, évidemment, il y a le cas où tu voudrais différencier plusieurs voitures : dans ce cas, prend le programme de RMont qui est plus pointu. | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: Conso-essence Sam 13 Avr 2019 - 18:17 | |
| bonjour a tous et pour Yannick avant toute chose je voudrai dire que l'idée de départ de ce projet remonte au 15 sept 2016. ily y a eu plusieurs réponses dont celles de yannick qui a repris et grandement amélioré mon ébauche de code (voir 17,26,27 sept 2016). ce code (de yannick ),e l'ai repris et mis ensuite a mon gout. pour l'instant je m'en sert tel quel . si cela intéresse je peu vous dire comment enregistrer les 2 premieres données;ensuite les calculs se font automatiquement
| |
| | | Contenu sponsorisé
| Sujet: Re: Conso-essence | |
| |
| | | | Conso-essence | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |