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 |
|
|
| Pour mieux surveiller son poids | |
| | Auteur | Message |
---|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Pour mieux surveiller son poids Jeu 30 Sep 2021 - 15:42 | |
| C'est tout nouveau, et sans rapport avec les jeux, là, c'est un utilitaire pour travailler sa santé, et ne pas laisser son poids monter, monter, monter, (et ne plus guère redescendre)... Faire un bilan (mensuel, annuel, et même un suivi sur les années...) C'est important, la santé ! Voici le source : - Code:
-
rem ' Poidsoramic - Mesure de l'évolution du poids du corps - jjn4 - 30/09/2021 dim IMD% : rem Indicateur de Modifications dans les Données dim MJC% : rem Moment de la Journée Concerné (0=Matin 1=Soir) dim NM$(12) : rem Nom des Mois dim TA$ : rem Texte de l`Aide dim V1M% , V2M% , V3M$ : rem Variables à utilisation Multiple label change : rem Regroupement de tous les on-change label clic : rem Regroupement de tous les on-click label close : rem Gestion de l`on-close label key : rem Gestion des entrées par la touche d`entrée du clavier dll_on "user32" rem Form0 et autres préparations ============================================== width 0,1365 height 0,720 font_bold 0 font_size 0,24 font_name 0,"Arial" color 0,255,255,155 caption 0," Poidsoramic - Mesure de l'évolution du poids du corps humain" on_close 0,close for V1M% = 1 to 12 : read NM$(V1M%) : next V1M% for V1M% = 1 to 14 read V3M$ TA$=TA$+V3M$+chr$(13) next V1M% grid 100 : rem Grille annuelle d`évolution du poids =========================== hide 100 top 100,101 width 100,1348 height 100,680 grid_column 100,32 grid_row 100,25 grid_column_width 100,38 grid_row_height 100,22 grid_one_column_width 100,1,134 grid_fixed_color 100,200,220,220 font_name 100,"Arial" font_bold_off 100 font_size 100,12 marge() on_click 100,clic list 110 : rem Choix de l`année d`évolution du poids ========================== left 110,10 top 110,5 width 110,110 height 110,92 color 110,255,230,0 for V1M% = 2021 to 2071 item_add 110,V1M% next V1M% on_click 110,clic alpha 120 : rem Affichage du titre du jour pour la case cliquée =============== left 120,135 top 120,5 font_bold_off 120 font_size 120,8 caption 120,"Jour :" alpha 130 : rem Affichage du jour pour la case cliquée left 130,140 top 130,17 font_color 130,255,0,0 alpha 140 : rem Affichage du titre du mois pour la case cliquée =============== left 140,135 top 140,50 font_bold_off 140 font_size 140,8 caption 140,"Mois :" alpha 150 : rem Affichage du mois pour la case cliquée left 150,140 top 150,62 font_color 150,255,0,0 alpha 160 : rem Affichage du titre pour une entrée au matin =================== left 160,195 top 160,10 caption 160,"Matin :" inactive 160 edit 170 : rem Affichage de la zone d`entrée des données nouvelles pour le matin left 170,310 top 170,5 width 170,85 height 170,45 inactive 170 color 170,255,230,0 on_change 170,change on_key_up 170,key button 180 : rem Affichage du bouton d`entrée des données nouvelles pour le matin left 180,405 top 180,5 width 180,130 height 180,45 caption 180,"Écrire" inactive 180 on_click 180,clic alpha 190 : rem Affichage du titre pour une entrée au soir ==================== left 190,195 top 190,59 caption 190,"Soir :" inactive 190 edit 200 : rem Affichage de la zone d`entrée des données nouvelles pour le soir left 200,310 top 200,52 width 200,85 height 200,45 color 200,255,230,0 inactive 200 on_change 200,change on_key_up 200,key button 210 : rem Affichage du bouton d`entrée des données nouvelles pour le soir left 210,405 top 210,52 width 210,130 height 210,45 caption 210,"Écrire" inactive 210 on_click 210,clic
rem Affichage des Minimum Maximum et Moyennes annuels ========================= alpha 220 : rem Affichage du titre pour le Minimum pour le Matin left 220,550 top 220,5 font_bold_off 220 font_size 220,8 caption 220,"Min / Matin :" alpha 230 : rem Affichage du poids Minimum pour le Matin left 230,620 top 230,5 font_bold_off 230 font_size 230,8 font_color 230,255,0,0 alpha 240 : rem Affichage du titre pour le Maximum pour le Matin left 240,550 top 240,20 font_bold_off 240 font_size 240,8 caption 240,"Max / Matin :" alpha 250 : rem Affichage du poids Maximum pour le Matin left 250,620 top 250,20 font_bold_off 250 font_size 250,8 font_color 250,255,0,0 alpha 260 : rem Affichage du titre du poids Moyen pour la Matin left 260,550 top 260,35 font_bold_off 260 font_size 260,8 font_color 260,0,155,0 caption 260,"Moy / Matin :" alpha 270 : rem Affichage du poids Moyen pour le Matin left 270,620 top 270,35 font_bold_off 270 font_size 270,8 font_color 270,0,0,255 alpha 280 : rem Affichage du titre pour le Minimum pour le Soir left 280,550 top 280,52 font_bold_off 280 font_size 280,8 caption 280,"Min / Soir :" alpha 290 : rem Affichage du poids Minimum pour le Soir left 290,620 top 290,52 font_bold_off 290 font_size 290,8 font_color 290,255,0,0 alpha 300 : rem Affichage du titre pour le Minimum pour le Soir left 300,550 top 300,67 font_bold_off 300 font_size 300,8 caption 300,"Max / Soir :" alpha 310 : rem Affichage du Minimum pour le Soir left 310,620 top 310,67 font_bold_off 310 font_size 310,8 font_color 310,255,0,0 alpha 320 : rem Affichage du titre du poids Moyen pour le Soir left 320,550 top 320,82 font_bold_off 320 font_size 320,8 font_color 320,0,155,0 caption 320,"Moy / Soir :" alpha 330 : rem Affichage du poids Moyen pour le Soir left 330,620 top 330,82 font_bold_off 330 font_size 330,8 font_color 330,0,0,255
panel 340 : rem Affichage du bouton de graphique mensuel ====================== left 340,655 top 340,5 width 340,180 height 340,92 color 340,200,200,200 on_click 340,clic inactive 340 alpha 350 : rem Affichage en double ligne du texte du bouton mensuel parent 350,340 top 350,10 font_color 350,100,100,100 caption 350," Graphique"+chr$(13)+" mensuel" on_click 350,clic panel 360 : rem Affichage du bouton de graphique annuel ======================= left 360,840 top 360,5 width 360,180 height 360,92 color 360,200,200,200 on_click 360,clic inactive 360 alpha 370 : rem Affichage en double ligne du texte du bouton annuel parent 370,360 top 370,10 font_color 370,100,100,100 caption 370," Graphique"+chr$(13)+" annuel" on_click 370,clic rem Affichage des trois boutons de droite ===================================== button 375 : rem Affichage du bouton flèche vers la droite left 375,1025 top 375,5 width 375,85 height 375,92 font_size 375,48 font_name 375,"Wingdings" caption 375,chr$(196) on_click 375,clic inactive 375 button 380 : rem Affichage du bouton d`Aide left 380,1115 top 380,5 width 380,100 height 380,92 caption 380,"Aide" on_click 380,clic button 390 : rem Affichage du bouton Enregistrer left 390,1220 top 390,5 width 390,120 height 390,92 caption 390,"Enreg" on_click 390,clic
panel 400 : rem Graphique mensuel ============================================= hide 400 width 400,1349 height 400,100 picture 410 parent 410,400 full_space 410 button 420 : rem Bouton de sortie du graphique mensuel parent 420,400 left 420,2 top 420,28 width 420,62 height 420,70 font_size 420,12 caption 420,"Sortir" on_click 420,clic panel 430 : rem Graphique annuel ============================================== hide 430 width 430,1349 height 430,100 picture 440 parent 440,430 full_space 440 button 450 : rem Bouton de sortie du graphique annuel parent 450,430 left 450,2 top 450,28 width 450,62 height 450,70 font_size 450,12 caption 450,"Sortir" on_click 450,clic end : ' Début des routines ====================================================
sub aide() : rem Explications sur le fonctionnement du programme ============== application_title " Fonctionnement du programme" message TA$ end_sub
sub bleu(qd%) : rem Déplacement de la coloration bleue des cellules =========== dim_local v1bl% rem qd% = Dans Quelle Direction bouger le bleu set_focus 100 select qd% case 2 :' Haut v1bl% = dll_call4("keybd_event",38,0,0,0) case 3 :' Droite v1bl% = dll_call4("keybd_event",39,0,0,0) case 4 :' Bas v1bl% = dll_call4("keybd_event",40,0,0,0) case 6 :' Haut-gauche v1bl% = dll_call4("keybd_event",33,0,0,0) : ' Top v1bl% = dll_call4("keybd_event",36,0,0,0) : ' Début end_select display end_sub
sub calcul() : rem Calcul des Min Max et Moy ================================== dim_local v1cx% , v1cy% , v1ca , v2ca% , v1mi , v1ma v1mi=200 : ' Calculs pour le Matin for v1cy% = 2 to 24 step 2 for v1cx% = 2 to 32 if grid_read$(100,v1cy%,v1cx%)<>"" : ' and grid_read$(100,v1cy%,v1cx%)<>"###" v1ca=v1ca+val(grid_read$(100,v1cy%,v1cx%)) v2ca%=v2ca%+1 if val(grid_read$(100,v1cy%,v1cx%))>v1ma v1ma=val(grid_read$(100,v1cy%,v1cx%)) end_if if val(grid_read$(100,v1cy%,v1cx%))<v1mi v1mi=val(grid_read$(100,v1cy%,v1cx%)) end_if end_if next v1cx% next v1cy% if v1mi<200 caption 230,v1mi : ' Minimum du Matin end_if if v1ma>0 caption 250,v1ma : ' Maximum du Matin end_if if v2ca%>0 caption 270,int((v1ca/v2ca%)*10)/10 : ' Moyenne du Matin end_if v1ca=0 : v2ca%=0 : v1mi=200 : v1ma=0 : ' Calculs pour le Soir for v1cy% = 3 to 25 step 2 for v1cx% = 2 to 32 if grid_read$(100,v1cy%,v1cx%)<>"" v1ca=v1ca+val(grid_read$(100,v1cy%,v1cx%)) v2ca%=v2ca%+1 if val(grid_read$(100,v1cy%,v1cx%))>v1ma v1ma=val(grid_read$(100,v1cy%,v1cx%)) end_if if val(grid_read$(100,v1cy%,v1cx%))<v1mi v1mi=val(grid_read$(100,v1cy%,v1cx%)) end_if end_if next v1cx% next v1cy% if v1mi<200 caption 290,v1mi : ' Minimum du Soir end_if if v1ma>0 caption 310,v1ma : ' Maximum du Soir end_if if v2ca%>0 caption 330,int((v1ca/v2ca%)*10)/10 : ' Moyenne du Soir end_if end_sub
change: : rem Regroupement de tous les on-change ============================== select number_change case 170 : active 180 case 200 : active 210 end_select return
clic: : rem Regroupement de tous les on-click ================================= select number_click case 100 : ' Clic sur le grid inactive 375 V1M%=int((mouse_x_position(100)-135)/39)+1 V2M%=int((mouse_y_position(100)-23)/46)+1 caption 130,V1M% caption 150,V2M% V1M%=int((mouse_y_position(100)-23)/23)+1 off_change 170 text 170,"" on_change 170,change off_change 200 text 200,"" on_change 200,change if even(V1M%)=0 : ' Matin ou Après-midi MJC%=0 active 160 active 170 set_focus 170 inactive 180 inactive 190 inactive 200 inactive 210 else MJC%=1 inactive 160 inactive 170 inactive 180 inactive 210 active 190 active 200 set_focus 200 end_if active 340 color 340,160,200,200 color 350,160,200,200 font_color 350,0,0,0 case 110 : ' Clic sur la liste des années inactive 160 inactive 170 inactive 180 inactive 190 inactive 200 inactive 210 gosub close IMD%=0 show 100 for V1M% = 230 to 330 step 20 caption V1M%,"" next V1M% grid_clear 100,25,32 if file_exists(dir_current$+"\Poidsoramic-"+item_index$(110)+".txt")=1 grid_load 100,dir_current$+"\Poidsoramic-"+item_index$(110)+".txt" else marge() grid_write 100,1,1,string$(11," ")+item_index$(110) end_if calcul() active 360 color 360,160,200,200 color 370,160,200,200 font_color 370,0,0,0 caption 130,"" caption 150,"" inactive 340 color 340,200,200,200 color 350,200,200,200 font_color 350,100,100,100 case 180 : ' Clic sur Écrire pour le Matin if text$(170)<>"" for V1M% = 2 to len(text$(170))-1 if mid$(text$(170),V1M%,1)="," text 170,left$(text$(170),V1M%-1)+"."+right_pos$(text$(170),V1M%+1) exit_for end_if next V1M% if numeric(text$(170))=1 grid_write 100,(val(caption$(150))*2)+MJC%,val(caption$(130))+1,text$(170) if text$(170)="0" grid_write 100,(val(caption$(150))*2)+MJC%,val(caption$(130))+1,"" end_if IMD%=1 text 170,"" inactive 160 inactive 170 inactive 180 active 375 end_if end_if calcul() case 210 : ' Clic sur Écrire pour le Soir if text$(200)<>"" for V1M% = 2 to len(text$(200))-1 if mid$(text$(200),V1M%,1)="," text 200,left$(text$(200),V1M%-1)+"."+right_pos$(text$(200),V1M%+1) exit_for end_if next V1M% if numeric(text$(200))=1 grid_write 100,(val(caption$(150))*2)+MJC%,val(caption$(130))+1,text$(200) if text$(200)="0" grid_write 100,(val(caption$(150))*2)+MJC%,val(caption$(130))+1,"" end_if IMD%=1 text 200,"" inactive 190 inactive 200 inactive 210 active 375 end_if end_if calcul() case 340 : graph_m() : ' Bouton Graphique mensuel case 350 : graph_m() case 360 : graph_a() : ' Bouton graphique annuel case 370 : graph_a() case 375 : droite() : ' Bouton Flèche à droite case 380 : aide() : ' Bouton Aide case 390 : enreg() : ' Bouton Enregistrer case 420 : hide 400 : active 100 : ' Fermer le Graphique mensuel case 450 : hide 430 : active 100 : ' Fermer le Graphique annuel end_select return
close: : rem Gestion de l`on-close ============================================ if IMD%=1 V1M%=message_confirmation_yes_no("Souhaitez-vous enregistrer les données nouvelles ?") if V1M%=1 enreg() end_if end_if return
rem Datas ===================================================================== data "Janvier" , "Février" , "Mars" , "Avril" , "Mai" , "Juin" , "Juillet" data "Août" , "Septembre" , "Octobre" , "Novembre" , "Décembre" data "- Pour entrer des données, choisir d'abord l'année," data " et ensuite le jour (Matin ou Après-Midi)" data "" data "- Après avoir inscrit votre poids, cliquez sur Écrire" data " pour entrer la donnée dans la grille (ou tapez « Entrée »)" data "" data "- Appuyez sur la flèche droite pour passer à l'inscription" data " du soir ou du lendemain" data "" data "- Pour consulter le graphique annuel, une année" data " doit avoir été choisie dans la liste" data "" data "- Pour consulter le graphique mensuel, vous devez" data " choisir un mois en cliquant dans la grille" rem Fin des datas
sub droite() : rem Passage à la case de droite ou suivante ==================== dim_local v1dr% off_click 100 if MJC%=0 MJC%=1 bleu(4) active 190 active 200 active 210 set_focus 200 else MJC%=0 if val(caption$(130))<31 caption 130,val(caption$(130))+1 bleu(3) bleu(2) active 160 active 170 active 180 set_focus 170 else if val(caption$(150))<12 caption 150,val(caption$(150))+1 caption 130,"1" bleu(6) for v1dr% = 1 to (val(caption$(150))-1)*2 bleu(4) display next v1dr% active 160 active 170 active 180 set_focus 170 else inactive 375 end_if end_if end_if on_click 100,clic inactive 375 end_sub
sub enreg() : rem Enregistrer les données ===================================== dim_local v1en$ v1en$=trim$(grid_read$(100,1,1)) grid_save 100,25,32,dir_current$+"\Poidsoramic-"+v1en$+".txt" IMD%=0 beep end_sub
sub graph_a() : rem Tracé du graphique annuel ================================= dim_local mia , maa , dmm% : ' MinimumAnnuel , MaximumAnnuel , DiffMaxMin dim_local mipd% , mape% : ' MinimumParDéfaut , MaximumParExcès dim_local eek : ' EspaceEntrelesKilos dim_local v1ga% , v2ga% , v3ga% , v4ga : ' Variables à utilisation multiple inactive 100 show 430 font_size 440,6 color 440,255,255,255 print_target_is 440 2d_target_is 440 2d_flood 2,2,255,255,255 ' Tracé des lignes d'abscisse et d'ordonnée font_color 440,0,0,0 font_bold_off 440 2d_pen_color 0,0,0 2d_line 132,95,1340,95 2d_line 132,95,132,-1 for v1ga% = 1 to 13 : ' Tracé des coches des mois de l'année 2d_line (v1ga%-1)*97+153,93,(v1ga%-1)*97+153,98 next v1ga% for v1ga% = 1 to 12 : ' Tracé des indications de mois print_locate (v1ga%-1)*97+186,85 print NM$(v1ga%) next v1ga% ' Calcul du Minima et Maxima annuel mia=300 if caption$(290)<>"" if val(caption$(290))<mia mia=val(caption$(290)) end_if end_if if caption$(230)<>"" if val(caption$(230))<mia mia=val(caption$(230)) end_if end_if if caption$(250)<>"" if val(caption$(250))>maa maa=val(caption$(250)) end_if end_if if caption$(310)<>"" if val(caption$(310))>maa maa=val(caption$(310)) end_if end_if mipd%=int(mia) : ' = Minimum Mensuel mape%=int(maa)+1 : ' = Maximum Mensuel dmm%=mape%-mipd% if dmm%>0 eek=75/dmm% end_if for v1ga% = 1 to dmm%+1 : ' Tracé des coches des poids 2d_line 130,81-(v1ga%-1)*eek,134,81-(v1ga%-1)*eek next v1ga% for v1ga% = mipd% to mape% : ' Tracé des indications des poids print_locate 136,(v1ga%-mipd%)*eek+1 print mipd%+mape%-v1ga% next v1ga% ' Tracé des lignes grises verticales et horizontales 2d_pen_color 200,200,200 for v1ga% = 1 to 13 2d_line (v1ga%-1)*97+153,2,(v1ga%-1)*97+153,85 next v1ga% for v1ga% = 1 to dmm%+1 2d_line 147,81-(v1ga%-1)*eek,1325,81-(v1ga%-1)*eek next v1ga% ' Tracé de la courbe de poids du matin v3ga%=0 2d_pen_color 0,100,0 for v1ga% = 1 to 12 for v2ga% = 1 to 31 if grid_read$(100,v1ga%*2,v2ga%+1)<>"" v4ga=val(grid_read$(100,v1ga%*2,v2ga%+1)) if v3ga%=0 2d_poly_from ((v1ga%-1)*31+v2ga%)*3.13+151,81-(v4ga-mipd%)*eek v3ga%=1 end_if 2d_poly_to ((v1ga%-1)*31+v2ga%)*3.13+151,81-(v4ga-mipd%)*eek end_if next v2ga% next v1ga% ' Tracé de la courbe de poids du soir v3ga%=0 2d_pen_color 255,0,0 for v1ga% = 1 to 12 for v2ga% = 1 to 31 if grid_read$(100,v1ga%*2+1,v2ga%+1)<>"" v4ga=val(grid_read$(100,v1ga%*2+1,v2ga%+1)) if v3ga%=0 2d_poly_from ((v1ga%-1)*31+v2ga%)*3.13+151,81-(v4ga-mipd%)*eek v3ga%=1 end_if 2d_poly_to ((v1ga%-1)*31+v2ga%)*3.13+151,81-(v4ga-mipd%)*eek end_if next v2ga% next v1ga% ' Tracé des Indications Matin et Soir 2d_flood 2,2,255,200,255 font_bold 440 font_size 440,14 font_color 440,0,100,0 print_locate 70,25 print "Matin" 2d_pen_color 0,100,0 2d_line 70,50,125,50 font_color 440,255,0,0 print_locate 70,60 print "Soir" 2d_pen_color 255,0,0 2d_line 70,85,125,85 font_color 440,0,0,255 print_locate 30,1 print trim$(grid_read$(100,1,1)) end_sub
sub graph_m() : rem Tracé du graphique mensuel ================================ dim_local mim , mam , dmm% : ' MinimumMensuel , MaximumMensuel , DiffMaxMin dim_local mipd% , mape% : ' MinimumParDéfaut , MaximumParExcès dim_local moym , moys : ' MoyenneMatin , MoyenneSoir dim_local nomm% , noms% : ' NombreDonnéesMatin , NombreDonnéesSoir dim_local eek : ' EspaceEntrelesKilos dim_local v1gr% , v2gr% , v3gr$ , v4gr : ' Variables à utilisation multiple inactive 100 show 400 font_size 410,6 color 410,255,255,255 print_target_is 410 2d_target_is 410 2d_flood 2,2,255,255,255 ' Tracé des lignes d'abscisse et d'ordonnée font_color 410,0,0,0 font_bold_off 410 2d_pen_color 0,0,0 2d_line 132,95,1340,95 2d_line 132,95,132,-1 for v1gr% = 1 to 31 : ' Tracé des coches des jours du mois 2d_line (v1gr%-1)*39+153,93,(v1gr%-1)*39+153,98 next v1gr% for v1gr% = 1 to 31 : ' Tracé des indications de jours print_locate (v1gr%-1)*39+150,83 print v1gr% next v1gr% ' Calcul du Minima et Maxima mensuel et des moyennes matin et soir mim=300 for v1gr% = 0 to 1 for v2gr% = 1 to 31 v3gr$=grid_read$(100,val(caption$(150))*2+v1gr%,v2gr%+1) if v3gr$<>"" if val(v3gr$)<mim mim=val(v3gr$) end_if if val(v3gr$)>mam mam=val(v3gr$) end_if if v1gr%=0 moym=moym+val(v3gr$) nomm%=nomm%+1 else moys=moys+val(v3gr$) noms%=noms%+1 end_if end_if next v2gr% next v1gr% if nomm%>0 : ' Moyennes mensuelles du Matin et du Soir moym=int((moym/nomm%)*10)/10 end_if if noms%>0 moys=int((moys/noms%)*10)/10 end_if mipd%=int(mim) : ' = Minimum Mensuel mape%=int(mam)+1 : ' = Maximum Mensuel dmm%=mape%-mipd% if dmm%>0 eek=75/dmm% end_if for v1gr% = 1 to dmm%+1 : ' Tracé des coches des poids 2d_line 130,81-(v1gr%-1)*eek,134,81-(v1gr%-1)*eek next v1gr% for v1gr% = mipd% to mape% : ' Tracé des indications des poids print_locate 136,(v1gr%-mipd%)*eek+1 print mipd%+mape%-v1gr% next v1gr% ' Tracé des lignes grises verticales et horizontales 2d_pen_color 200,200,200 for v1gr% = 1 to 31 2d_line (v1gr%-1)*39+153,2,(v1gr%-1)*39+153,83 next v1gr% for v1gr% = 1 to dmm%+1 2d_line 147,81-(v1gr%-1)*eek,1340,81-(v1gr%-1)*eek next v1gr% ' Tracé de la courbe de poids du matin v2gr%=0 2d_pen_color 0,100,0 for v1gr% = 1 to 31 if grid_read$(100,val(caption$(150))*2,v1gr%+1)<>"" v4gr=val(grid_read$(100,val(caption$(150))*2,v1gr%+1)) if v2gr%=0 2d_poly_from (v1gr%-1)*39+153,81-(v4gr-mipd%)*eek v2gr%=1 end_if 2d_poly_to (v1gr%-1)*39+153,81-(v4gr-mipd%)*eek end_if next v1gr% ' Tracé de la courbe de poids du soir v2gr%=0 2d_pen_color 255,0,0 for v1gr% = 1 to 31 if grid_read$(100,val(caption$(150))*2+1,v1gr%+1)<>"" v4gr=val(grid_read$(100,val(caption$(150))*2+1,v1gr%+1)) if v2gr%=0 2d_poly_from (v1gr%-1)*39+153,81-(v4gr-mipd%)*eek v2gr%=1 end_if 2d_poly_to (v1gr%-1)*39+153,81-(v4gr-mipd%)*eek end_if next v1gr% ' Tracé des Indications Matin, Soir et du Mois 2d_flood 2,2,175,255,0 font_bold 410 font_size 410,14 font_color 410,0,100,0 print_locate 70,22 print "Matin" font_size 410,6 print_locate 74,45 print "Moy = "+str$(moym) 2d_pen_color 0,100,0 2d_line 70,43,125,43 font_size 410,14 font_color 410,255,0,0 print_locate 70,58 print "Soir" font_size 410,6 print_locate 74,81 print "Moy = "+str$(moys) 2d_pen_color 255,0,0 2d_line 70,79,125,79 font_size 410,14 font_color 410,0,0,255 print_locate 10,1 print NM$(val(caption$(150))) end_sub
key: : rem Gestion des entrées par la touche d`entrée du clavier ============== if key_up_code=13 select number_key_up case 170 : trigger_click 180 case 200 : trigger_click 210 end_select end_if return
sub marge() : rem Remplissage des marges du grid ============================== dim_local v1ma% for v1ma% = 1 to 12 grid_write 100,v1ma%*2,1,NM$(v1ma%)+" - Matin" grid_write 100,v1ma%*2+1,1," Soir" next v1ma% for v1ma% = 1 to 31 grid_write 100,1,v1ma%+1," "+str$(v1ma%) next v1ma% end_sub
Je le mets là, puisqu'il est sans fichier annexe. Je le mets aussi sur le site des utilitaires : panoramic@jjn42 avec son exécutable Pratique, qu'est-ce que vous en pensez ?
Dernière édition par jjn4 le Sam 9 Oct 2021 - 15:42, édité 1 fois | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Pour mieux surveiller son poids Ven 1 Oct 2021 - 23:47 | |
| Bravo JJN4 ! J’ai effectué quelques tests avec succès. Les graphiques fonctionnent bien. La mise à l’échelle dans l’axe Y, en fonction des mini/maxi est remarquable. Enregistrement, sauvegarde, restitution, tout est ok ! Juste une petite anomalie d’affichage : dans le GRID, les mots "Soir" sont tronqués. Pour info, je suis sous W10. Bonne continuation ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Pour mieux surveiller son poids Sam 2 Oct 2021 - 10:43 | |
| Bonjour jjn4 Bravo, Belle réalisation. Sinon j'ai le même problème que Marc concernant les mots "Soir". Il faudrait peut être que tu calcules l'espace de "Janvier - " et tu alignes "Soir" sur cet espace. En utilisant TEXT_WIDTH() ça doit être possible je pense... Enfin, c'est une idée. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Pour mieux surveiller son poids Sam 2 Oct 2021 - 16:09 | |
| Ce décalage, qui n'existait pas lorsque j'ai créé le programme, est dû au fait que je créée en éditeur 29.i7 (j'ai toujours du mal avec le i11) (mais au fait, c'est le i9 ou le i11 que vous utilisez ? je vois que le i11 a disparu des écrans sur le forum ? en tout cas, même avec le i9, les textes sont plus gras et plus longs, c'est pour ça que ça déborde) et quand on le transfère dans un i11, (ou le i9) ça décale les tailles exactement comme cela avait fait en passant de Win7 à Win8. J'avoue que j'ai un peu la flemme de devoir l'adapter... Enfin, je verrai quand j'y aurais intégré cette façon de pousser la cellule bleuie avec les dll proposés par Marc (sans oublier Klaus et les autres intervenants) Le problème, c'est que leur application dans Poidsoramic pose réellement de curieux problèmes de décalage de contenus de variables ou de nombres affichés qui fait que cela ne marche plus du tout. (tous ces problèmes ont été réglés avec votre concours dans le chapitre : A l'aide...) En attendant, si vous souhaitez l'utiliser pour suivre de près votre poids, utilisez l'exécutable proposé sur le site jjn42. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Pour mieux surveiller son poids Sam 9 Oct 2021 - 15:53 | |
| Ca y est, j'ai amélioré le style en y ajoutant les utilisations de dll que vous m'avez conseillées. Ah, ça donne tout de suite meilleur style ! Je n'ai pas utilisé le truc de Marc avec le memo qui se déplace, (non pas parce que ce n'est pas bien, loin de là), mais parce que lorsqu'on utilise un clavier virtuel (qui vient cacher tout le bas de l'écran), c'est plus pratique avec un edit situé tout en haut). (Ce sera pour un prochain programme...) NOTA : Le listing du programme corrigé a été placé plus haut, à la place du premier essai dans le premier post (c'est plus écologique, non ?) Maintenant, vous pouvez y aller, et suivre l'évolution de votre poids. J'en ai profité pour corriger les décalages pour que ça marche bien quelle que soit la version utilisée... Alors, à vos balances, prêts ?, partez ! | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Pour mieux surveiller son poids Sam 9 Oct 2021 - 16:25 | |
| Bonjour JJN4 et le bonjour à tous !
Bravo ! Testé avec succès ! Et les mots "Soir" sont bien visibles.
Juste un petit détail technique qui n’entrave pas le bon fonctionnement du programme. Ligne 309, la fonction "keybd_event",33,0,0,0" ne permet pas de remonter en haut d’un GRID. L’action de la touche-clavier 33 permet juste de sauter d’une page vers le haut (page UP). Mais comme ton GRID ne comporte qu’une seule "petite page", effectivement le curseur se retrouve donc en haut. La bonne séquence de touches à envoyer est "Ctrl + début", en anglais "Ctrl + Home". Ce sont les touches du clavier 17 et 36.
Bonne continuation ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Pour mieux surveiller son poids Dim 10 Oct 2021 - 14:54 | |
| Ok je prends en compte, mais comme en mettant que le keybd_event 36, ça ne marche pas comme je veux, et en mettant keybd_event 17 suivi de keybd_event 36, ça ne marche pas bien non plus, alors je laisse comme ça, même si ce n'est pas très catholique, ça marche, ce qui est le principal. Merci cependant de tous les conseils. Je vais tenter de les appliquer pour un autre prochain programme que je concocte... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Pour mieux surveiller son poids Dim 10 Oct 2021 - 16:02 | |
| Salut JJN4 !
Encore une petite précision. Avec la dll User32 et la fonction keybd_event, si tu simules l’appui sur la touche Ctrl, il faut penser, à la fin de ta combinaison de touches, à relâcher la touche Ctrl avec "res% = dll_call4("keybd_event",17,0,2,0)".
Voici la séquence pour simuler un "Ctrl + Home" :
res% = dll_call4("keybd_event",17,0,0,0) :’ appui sur Ctrl res% = dll_call4("keybd_event",36,0,0,0) :’ appui sur Home res% = dll_call4("keybd_event",17,0,2,0) :’ relâchement de Ctrl
A+ | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Pour mieux surveiller son poids Dim 10 Oct 2021 - 18:53 | |
| Hum, bon à savoir, ça ! Bravo, Marc ! Et euhhhhh, et ils servent à quoi, les 2 autres zéros ? (oui, je sais, je chipote...) | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Pour mieux surveiller son poids Mar 31 Oct 2023 - 16:37 | |
| J'ai édité une nouvelle version du logiciel qui lui ajoute un peu plus de couleurs... Voir sur le webdav si vous voulez surveiller votre poids... | |
| | | Contenu sponsorisé
| Sujet: Re: Pour mieux surveiller son poids | |
| |
| | | | Pour mieux surveiller son poids | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |