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 |
|
|
| pourquoi cette erreur? | |
| | Auteur | Message |
---|
RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: pourquoi cette erreur? Jeu 15 Sep 2016 - 9:35 | |
| bonjour a tous. je commence par montrer l'erreur et maintenant je pose la question:que veux dire exactement cette erreur "numéro d'objet hors limite en ligne 146" ?. j'ai mis row% car j'ajoute une ligne a chaque fois que je rentre les valeurs correspondantes a un nouveau complèment de plein d'essence ( environ 2 a 3 semaines) donc pour commencer j'ai mis row% a 1 pour la 1ere sauvegarde. pour le chargement du fichier en ligne 147 je rajoute donc une ligne a remplir row%+1. je précise ,le fichier "consoessence" est bien sauvegardé avec comme valeur en tête 1 et 9 avec toutes les valeurs correspondantes des 9 colonnes. donc pourquoi cette erreur qui m'empêche de continuer ? | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: pourquoi cette erreur? Jeu 15 Sep 2016 - 10:03 | |
| Bonjour RMont,
Dans le sous-programme loadfichier, inverses les 2 lignes. Je pense que tu devrais ajouter la ligne au grid avant de charger le fichier.
A+ | |
| | | Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Objet Grid. Jeu 15 Sep 2016 - 10:05 | |
| Bonjour.
Personnellement, je remplacerais la commande INSERT par WRITE.
Bonne continuation. | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: pourquoi cette erreur? Jeu 15 Sep 2016 - 10:23 | |
| Bonjour à tous
@Rmont Cette erreur survient quand tu essayes de charger un fichier dans un grid qui n'exite pas. La commande 'grid_load' ne cré pas de grid, elle le rempli! | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: pourquoi cette erreur? Jeu 15 Sep 2016 - 11:54 | |
| merci pour ces premieres réponses le grid en question est crée en début de programme mais effectivement je me posai cette question :ou est ce grid alors si je poste mon projet ,est-ce qu'il serai de me montrer ou cela "pèche" ,car je ne voi pas comment recuperer ce grid si je me sert de la cde "ouvrir" que me servira a entrer des novelles données
| |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: pourquoi cette erreur? Jeu 15 Sep 2016 - 12:21 | |
| @Rmont oui, bien sur tu peux poster ton projet, ça sera plus facile de voir ou est le pb.
Sinon essaye d'ajouter cette ligne dans 'loadfichier:' if object_exists(100)=0 then grid 100 | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: pourquoi cette erreur? Jeu 15 Sep 2016 - 13:46 | |
| a silverman je prefere poster mon projet - Code:
-
' grid vervion 16 ter du 14/09/16 ' version en élaboration error_french
variables() labels()
height 0,850 : width 0,1600
main_menu 20 sub_menu 22:caption 22,"Fichier" parent 22,20 sub_menu 24:caption 24,"Nouveau" :' en ligne 41 parent 24,22 on_click 24,nouveau
sub_menu 26:caption 26,"Ouvrir" parent 26,22 on_click 26,loadfichier :' en ligne 145
sub_menu 28:caption 28," " parent 28,22
sub_menu 30:caption 30,"Quitter" :' en ligne 162 parent 30,22 on_click 30,quitter
sub_menu 32:caption 32,"Aide" parent 32,20
sub_menu 34:caption 34,"A lire" parent 34,32 on_click 34,alire :' en ligne 150
end
nouveau: picture 50: width 50, 1600: height 50, 400 color 50, 241,239,255 2D_target_is 50 2D_fill_color 0,255,0
print_target_is 50 : font_name 50, "Consolas" : font_size 50, 12
2d_rectangle x,y,x+l-1,y+h-1 : PRINT_LOCATE x+30,y+15: print "Date" : x=x+l 2d_rectangle x,y,x+240-1,y+h-1 : PRINT_LOCATE x+100,y+15 : print "Lieu" : x=x+240 2d_rectangle x,y,x+120-1,y+h-1 : print_LOCATE x+15,y+15 : print "Qté d'ess" : x=x+120 2d_rectangle x,y,x+130-1,y+h-1 : print_LOCATE x+13,y+15 : print "Pour X Kms" : x=x+130 2d_rectangle x,y,x+140-1,y+h-1 : print_LOCATE x+13,y+15 : print "Prix total" : x=x+140 2d_rectangle x,y,x+130-1,y+h-1 : print_LOCATE x+11,y+15 : print "Prix_litre" : x=x+130 2d_rectangle x,y,x+170-1,y+h-1 : print_LOCATE x+5,y+15 : print "Total compteur" : x=x+170 2d_rectangle x,y,x+180-1,y+h-1 : print_LOCATE x+13,y+15 : print "Moyenne au 100" : x=x+180 2d_rectangle x,y,x+200-1,y+h-1 : print_locate x+5,y+15 : print "Moyenne générale" : x=x+130
' création d'un GRID grid 100 ' hide 100 top 100,90 : left 100,60 : height 100,700 : width 100,1470 grid_row 100,row% : ' 1 rangée pour commencer grid_row_height 100,25 :' hauteur des lignes grid_column 100,9 :' grid à 9 colonnes font_name 100,"consolas" :font_size 100,11
grid_one_column_width 100,1,107 :' date grid_one_column_width 100,2,239 :' lieu grid_one_column_width 100,3,120 :' qte d'ess grid_one_column_width 100,4,129 :' pour x kms grid_one_column_width 100,5,139 :' prix total grid_one_column_width 100,6,128 :' prix au litre grid_one_column_width 100,7,169 :' total compteur grid_one_column_width 100,8,179 :' moyenne au 100 grid_one_column_width 100,9,199 :' moyenne générale questionnaire() return
sub questionnaire() form 200 width 200,350 : left 200,570 : height 200,350 : top 200,(screen_y-210)/2 caption 200,"Remplir ce questionnaire" color 200,0,0,0 :' blanc command_target_is 200 edit 201:left 201,110:top 201,15:width 201,180 :font_color 201,0,0,0 :set_focus 201:' dat$ edit 202:left 202,110:top 202,45:width 202,180 :font_color 202,0,0,0 :' lieu$ edit 203:left 203,110:top 203,75:width 203,180 :font_color 203,0,0,0 :' qtess edit 204:left 204,110:top 204,105:width 204,180:font_color 204,0,0,0 :' xkms edit 205:left 205,110:top 205,135:width 205,180:font_color 205,0,0,0 :' ptot edit 206:left 206,110:top 206,165:width 206,180:font_color 206,0,0,0 :' plit edit 207:left 207,110:top 207,195:width 207,180:font_color 207,0,0,0 :' kmstot%
print_target_is 200 font_color 200,255,255,255 :' blanc print_locate 0,20 : print " Date : " print_locate 0,50 : print " Lieu : " print_locate 0,80 : print " Qté d'ess : " print_locate 0,110 : print " Pour X kms : " print_locate 0,140 : print " Prix total : " print_locate 0,170 : print " Prix_litre : " print_locate 0,200 : print " Kilom total : " button 210 : left 210,(width(200)-width(200))/2+150:top 210,250 : caption 210,"Calcul" on_click 210 , calcul end_sub
calcul: ' ci-dessous récupération des données dat$=text$(201) modat() :' modif date en xx/xx/xx lieu$ =text$(202) qtess=val(text$(203)) xkms=val(text$(204)) ptot=val(text$(205)) plit=val(text$(206)) kmstot%=val(text$(207)) ' ci_dessous calcul des moyennes moycent=qtess*100/xkms :' moyenne au 100 kms qtal=qtal+qtess :' quantité totale pleins + pleins moygen = qtal*100/kmstot% :' moyenne générale depuis début
hide 200 show 100
grid_write 100,row%,1,dat$ grid_write 100,row%,2,lieu$ grid_write 100,row%,3,qtess grid_write 100,row%,4,xkms grid_write 100,row%,5,ptot grid_write 100,row%,6,plit grid_write 100,row%,7,kmstot% grid_write 100,row%,8,moycent grid_write 100,row%,9,moygen grid_save 100,row%,9,"consoessence.txt" return
sub modat() dim_local b$,c$,d$ b$=left$(dat$,2) c$=mid$(dat$,3,2) d$=right$(dat$,2) dat$=b$+"/"+c$+"/"+d$ end_sub
loadfichier: grid_load 100,"consoessence.txt" grid_row_insert 100,row%+1 return
alire: dim t$ t$="il faut rentrer la date sous cette forme : exemple 150916 (15 septembre 2016)."+chr$(13) t$=t$+"le programme se chargera de mettre la date sous cette forme : 15/09/16."+chr$(13) t$=t$+" "+chr$(13) t$ =t$+" le but de ce code est de connaitre la consommation moyenne d'essence aux 100 kms de ma citroen c4 ,"+chr$(13) t$=t$+" je veux savoir aussi combien d'argent , pour de l'essence , j'ai investit dans ce véhicule."
alpha 10 : top 10,20 :left 10,350 :font_bold 10 : font_size 10,12 caption 10,t$ return
quitter: if message_confirmation_yes_no ("fermeture du programme ? ")=1 then grid_save 100,row%,9,"consoessence.txt" terminate return
sub variables() dim qtess :' quantité d' essence mise dim ptot :' prix payé dim plit :' prix au litre dim xkms :' correspond au compteur jounalier sur pluieurs jours dim kmstot% :' compteur total dim lieu$ :' lieu du complément dim moycent :' moyenne au 100 kms dim qtal :' addition de tous les pleins dim moygen :' moyenne générale depuis debut dim dat$ :' coorespond à la date du plein dim row% : row%=1 :' row% =une ligne de plus dim x,y,l,h ' x1,y1,al x = 60: y = 50: l = 110: h = 45 end_sub
sub labels() label nouveau label calcul label loadfichier label alire label quitter end_sub
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 15 Sep 2016 - 13:52 | |
| - Code:
-
quitter: if message_confirmation_yes_no ("fermeture du programme ? ")=1 if object_exists(100)=1 grid_save 100,row%,9,"consoessence.txt" end_if end_if terminate return Pour éviter une horreur, heu...une erreur lorsque l' on veut quitter sans être passé par l' étape "Nouveau" | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: pourquoi cette erreur? Jeu 15 Sep 2016 - 14:47 | |
| @Rmont
C'est bien ce que je pensais, quand tu cliques sur "ouvrir", tu essayes de remplir un grid qui n'existe pas. En fait, ton grid est créé seulement quand tu cliques sur "nouveau". c'est juste logique, regarde: -juste après le menu, cré le grid 100 et cache le -si click sur "ouvrir" --->plus de pb -si click sur "nouveau", alors supprime le(il est peut être rempli, mais on en plus besoin) et recré le caché | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: pourquoi cette erreur? Jeu 15 Sep 2016 - 18:53 | |
| Le problème Rmont, c'est que tu crées des OBJETS après le END. J'ai rangé ton code pour que les objets soit tous crées avant END dans la SUB obj(). Si un objet ne doit pas être visible ou actif au départ tu utilise HIDE N et INACTIVE n. Ensuite tu peux toujours remettre ces objets en service avec SHOW N et ACTIVE n. voici ton code: - Code:
-
' grid vervion 16 ter du 14/09/16 ' version en élaboration error_french
variables() labels() obj()
END rem ============================================================================ nouveau: 2D_target_is 50 2D_fill_color 0,255,0
print_target_is 50 : font_name 50, "Consolas" : font_size 50, 12
2d_rectangle x,y,x+l-1,y+h-1 : PRINT_LOCATE x+30,y+15: print "Date" : x=x+l 2d_rectangle x,y,x+240-1,y+h-1 : PRINT_LOCATE x+100,y+15 : print "Lieu" : x=x+240 2d_rectangle x,y,x+120-1,y+h-1 : print_LOCATE x+15,y+15 : print "Qté d'ess" : x=x+120 2d_rectangle x,y,x+130-1,y+h-1 : print_LOCATE x+13,y+15 : print "Pour X Kms" : x=x+130 2d_rectangle x,y,x+140-1,y+h-1 : print_LOCATE x+13,y+15 : print "Prix total" : x=x+140 2d_rectangle x,y,x+130-1,y+h-1 : print_LOCATE x+11,y+15 : print "Prix_litre" : x=x+130 2d_rectangle x,y,x+170-1,y+h-1 : print_LOCATE x+5,y+15 : print "Total compteur" : x=x+170 2d_rectangle x,y,x+180-1,y+h-1 : print_LOCATE x+13,y+15 : print "Moyenne au 100" : x=x+180 2d_rectangle x,y,x+200-1,y+h-1 : print_locate x+5,y+15 : print "Moyenne générale" : x=x+130
questionnaire() RETURN
rem ============================================================================
SUB questionnaire() form 200 width 200,350 : left 200,570 : height 200,350 : top 200,(screen_y-210)/2 caption 200,"Remplir ce questionnaire" color 200,0,0,0 :' blanc command_target_is 200 edit 201:left 201,110:top 201,15:width 201,180 :font_color 201,0,0,0 :set_focus 201:' dat$ edit 202:left 202,110:top 202,45:width 202,180 :font_color 202,0,0,0 :' lieu$ edit 203:left 203,110:top 203,75:width 203,180 :font_color 203,0,0,0 :' qtess edit 204:left 204,110:top 204,105:width 204,180:font_color 204,0,0,0 :' xkms edit 205:left 205,110:top 205,135:width 205,180:font_color 205,0,0,0 :' ptot edit 206:left 206,110:top 206,165:width 206,180:font_color 206,0,0,0 :' plit edit 207:left 207,110:top 207,195:width 207,180:font_color 207,0,0,0 :' kmstot%
print_target_is 200 font_color 200,255,255,255 :' blanc print_locate 0,20 : print " Date : " print_locate 0,50 : print " Lieu : " print_locate 0,80 : print " Qté d'ess : " print_locate 0,110 : print " Pour X kms : " print_locate 0,140 : print " Prix total : " print_locate 0,170 : print " Prix_litre : " print_locate 0,200 : print " Kilom total : " button 210 : left 210,(width(200)-width(200))/2+150:top 210,250 : caption 210,"Calcul" on_click 210 , calcul END_SUB
rem ============================================================================
calcul: ' ci-dessous récupération des données dat$=text$(201) modat() :' modif date en xx/xx/xx lieu$ =text$(202) qtess=val(text$(203)) xkms=val(text$(204)) ptot=val(text$(205)) plit=val(text$(206)) kmstot%=val(text$(207)) ' ci_dessous calcul des moyennes moycent=qtess*100/xkms :' moyenne au 100 kms qtal=qtal+qtess :' quantité totale pleins + pleins moygen = qtal*100/kmstot% :' moyenne générale depuis début
hide 200 show 100
grid_write 100,row%,1,dat$ grid_write 100,row%,2,lieu$ grid_write 100,row%,3,qtess grid_write 100,row%,4,xkms grid_write 100,row%,5,ptot grid_write 100,row%,6,plit grid_write 100,row%,7,kmstot% grid_write 100,row%,8,moycent grid_write 100,row%,9,moygen grid_save 100,row%,9,"consoessence.txt" RETURN
rem ============================================================================
SUB modat() dim_local b$,c$,d$ b$=left$(dat$,2) c$=mid$(dat$,3,2) d$=right$(dat$,2) dat$=b$+"/"+c$+"/"+d$ END_SUB
rem ============================================================================
loadfichier: grid_load 100,"consoessence.txt" grid_row_insert 100,row%+1 RETURN
rem ============================================================================
alire: dim t$ t$="il faut rentrer la date sous cette forme : exemple 150916 (15 septembre 2016)."+chr$(13) t$=t$+"le programme se chargera de mettre la date sous cette forme : 15/09/16."+chr$(13) t$=t$+" "+chr$(13) t$ =t$+" le but de ce code est de connaitre la consommation moyenne d'essence aux 100 kms de ma citroen c4 ,"+chr$(13) t$=t$+" je veux savoir aussi combien d'argent , pour de l'essence , j'ai investit dans ce véhicule."
alpha 10 : top 10,20 :left 10,350 :font_bold 10 : font_size 10,12 caption 10,t$ RETURN
rem ============================================================================
quitter: if message_confirmation_yes_no ("fermeture du programme ? ")=1 then grid_save 100,row%,9,"consoessence.txt" terminate RETURN
rem ============================================================================
SUB variables() dim qtess :' quantité d' essence mise dim ptot :' prix payé dim plit :' prix au litre dim xkms :' correspond au compteur jounalier sur pluieurs jours dim kmstot% :' compteur total dim lieu$ :' lieu du complément dim moycent :' moyenne au 100 kms dim qtal :' addition de tous les pleins dim moygen :' moyenne générale depuis debut dim dat$ :' coorespond à la date du plein dim row% : row%=1 :' row% =une ligne de plus dim x,y,l,h ' x1,y1,al x = 60: y = 50: l = 110: h = 45 END_SUB
rem ============================================================================
SUB labels() label nouveau label calcul label loadfichier label alire label quitter END_SUB
rem ============================================================================
SUB obj() height 0,850 : width 0,1600
' Menu main_menu 20 sub_menu 22:caption 22,"Fichier" parent 22,20
sub_menu 24:caption 24,"Nouveau" :' en ligne 41 parent 24,22 on_click 24,nouveau
sub_menu 26:caption 26,"Ouvrir" parent 26,22 on_click 26,loadfichier :' en ligne 145
sub_menu 28:caption 28," " parent 28,22
sub_menu 30:caption 30,"Quitter" :' en ligne 162 parent 30,22 on_click 30,quitter
sub_menu 32:caption 32,"Aide" parent 32,20
sub_menu 34:caption 34,"A lire" parent 34,32 on_click 34,alire :' en ligne 150
' picture picture 50: width 50, 1600: height 50, 400 color 50, 241,239,255
' création d'un GRID grid 100 ' hide 100 top 100,90 : left 100,60 : height 100,700 : width 100,1470 grid_row 100,row% : ' 1 rangée pour commencer grid_row_height 100,25 :' hauteur des lignes grid_column 100,9 :' grid à 9 colonnes font_name 100,"consolas" :font_size 100,11
grid_one_column_width 100,1,107 :' date grid_one_column_width 100,2,239 :' lieu grid_one_column_width 100,3,120 :' qte d'ess grid_one_column_width 100,4,129 :' pour x kms grid_one_column_width 100,5,139 :' prix total grid_one_column_width 100,6,128 :' prix au litre grid_one_column_width 100,7,169 :' total compteur grid_one_column_width 100,8,179 :' moyenne au 100 grid_one_column_width 100,9,199 :' moyenne générale
END_SUB
A+ | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: pourquoi cette erreur? Jeu 15 Sep 2016 - 19:09 | |
| pour ce soir je me déconnecte . je reprendrai ce sujet dans une dizaine de jours ,si je réussis pas dans mon projet,car départ en vacances des samedi matin bonne continuation a vous
| |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: pourquoi cette erreur? Ven 16 Sep 2016 - 15:14 | |
| bonjour a tous. @ jean-claude. j'ai eu un peu de temps aujourd'hui et j'ai étudier ta façon de faire. cela m'a servi car j'ai fait une avancée significative. j'ai encore un petit problème qui sera bientôt résolu je pense merci jean-claude. retour sur le site dans une dizaine de jours car là ou je vais je n'ai pas de connexion internet
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: pourquoi cette erreur? Ven 16 Sep 2016 - 20:13 | |
| @Rmont, Je suis content de t'avoir aidé. En fait, comme je l'ai dit plus haut, je n'ai rien changé à ton code. J'ai simplement regroupé la création des objets Panoramic dans la SUB obj() en m'assurant que cette SUB soit appelée avant END. Je te souhaite de bonnes vacances, rendez-vous dans 10 jours. A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 17 Sep 2016 - 15:09 | |
| Bon, je me suis un peu amusé avec ton interface... - Code:
-
variables() labels() gui()
end
' ------------------------------------------------------------------------------
sub variables() dim_local i% ' var d' incrémentation des objets dim no% ' objets du menu dim mm% : no%=no%+1 : mm%=no% dim sm%(9): for i%=1 to 9 : no%=no%+1 : sm%(i%)=no% : next i% ' panel de recup des dimensions de la zone de travail du form 0 dim pan% : no%=no%+1 : pan%=no% ' grid dim Table% : no%=no%+1 : Table%=no% ' boites de dialogue dim Odial% : no%=no%+1 : Odial%=no% ' fichier en lecture/ecriture dim Oread% : no%=no%+1 : Oread%=no% ' Etat ( 0 pas de fichier ouvert / 1 fichier ouvert / 2 fichier ouvert et modifié dim Etat% ' Adresse du dossier de sauvegarde dim Mesdoc$ : Mesdoc$= "C:\Users\Yannick\Desktop\Nouveau dossier\" ' Nom du fichier en cours d' utilisation dim Fic$ ' Nombre de colonnes et de ligne du grid en cours dim Nbcol% dim Nbrow% end_sub
' ------------------------------------------------------------------------------
sub labels() label clic,L,Close end_sub
' ------------------------------------------------------------------------------
sub gui() height 0,750 width 0,1470 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 on_close 0,Close
main_menu mm% sub_menu sm%(1) : parent sm%(1),mm% : caption sm%(1),"Fichier" sub_menu sm%(8) : parent sm%(8),mm% : caption sm%(8),"Ajouter" : on_click sm%(8),clic : inactive sm%(8) sub_menu sm%(9) : parent sm%(9),mm% : caption sm%(9),"Calculer" : on_click sm%(9),clic : inactive sm%(9) sub_menu sm%(2) : parent sm%(2),mm% : caption sm%(2),"Aide"
sub_menu sm%(3) : parent sm%(3),sm%(1) : caption sm%(3),"Nouveau" : on_click sm%(3),clic sub_menu sm%(4) : parent sm%(4),sm%(1) : caption sm%(4),"Ouvrir" : on_click sm%(4),clic sub_menu sm%(5) : parent sm%(5),sm%(1) : caption sm%(5),"-" sub_menu sm%(6) : parent sm%(6),sm%(1) : caption sm%(6),"Quitter" : on_click sm%(6),clic
sub_menu sm%(7) : parent sm%(7),sm%(2) : caption sm%(7),"A lire" : on_click sm%(7),clic
panel pan% full_space pan% end_sub
' ------------------------------------------------------------------------------
clic: ' MENU NOUVEAU if number_click = sm%(3) inactive sm%(8) inactive sm%(9) if object_exists(Table%)=1 if Etat%=2 if message_warning_yes_no("Un fichier est en cours d'utilisation."+chr$(13)+"Voulez vous enregistrer les modifications apportées ?")=1 dir_change Mesdoc$ grid_save Table%,NbRow%,NbCol%,fic$ delete Table% end_if else delete Table% end_if end_if NewFileInfo() if fic$<>"" CreateTable(2,9) active sm%(8) active sm%(9) end_if Etat%=1 return end_if
' MENU OUVRIR if number_click = sm%(4) inactive sm%(8) inactive sm%(9) if object_exists(Table%)=1 if Etat%=2 if message_warning_yes_no("Un fichier est en cours d'utilisation."+chr$(13)+"Voulez vous enregistrer les modifications apportées ?")=1 grid_save Table%,NbRow%,NbCol%,fic$ delete Table% end_if else delete Table% end_if end_if OpenFile() if fic$<>"" CreateTable(Nbrow%,Nbcol%) grid_load Table%,fic$ active sm%(8) active sm%(9) end_if return end_if
' MENU AJOUTER if number_click = sm%(8) if object_exists(Table%)=1 Nbrow%=Nbrow%+1 grid_row_insert Table%,Nbrow% Etat%=2 end_if return end_if ' MENU CALCULER if number_click = sm%(9) CalcGrid() return end_if ' MENU QUITTER if number_click = sm%(6) Quitter() return end_if
' MENU AIDE if number_click = sm%(7) message "Aide" return end_if return
' ------------------------------------------------------------------------------
Close: if Etat%=2 if Message_warning_yes_no("Votre fichier a été modifié !"+chr$(13)+"Voulez vous sauvegarder vos modifications ?")=1 grid_save Table%,NbRow%,NbCol%,fic$ end_if end_if return
' ------------------------------------------------------------------------------
' dénomination d' un nouveau fichier sub NewFileInfo() dim_local a$,fe%
L:
fic$="" fe%=0 if message_input("Nouveau","Nom du fichier","")=1 Fic$=message_text$+".txt" if fic$<>".txt" dir_change Mesdoc$ a$=file_find_first$ if instr(a$,".")>2 a$=file_extract_name$(a$) if a$=fic$ : fe%=1 : end_if end_if a$=file_find_next$ while a$<>"_" if instr(a$,".")>2 a$=file_extract_name$(a$) if a$=fic$ : fe%=1 : end_if end_if a$=file_find_next$ end_while file_find_close else message "Vous devez nommer le nouveau fichier !" goto L end_if end_if if fe%=1 goto L end_if end_sub
' Procédure de création du grid sub CreateTable(Nr%,Nc%) dim_local i%,a$,c$,v$,vt$ Nbcol%=Nc% Nbrow%=Nr%
if object_exists(Table%)=0 grid Table% parent Table%,pan% height Table%,height(pan%)-20 width Table%,width(pan%)-20 top Table%,10 left Table%,10 grid_row Table%,Nbrow% grid_row_fixed Table%,1 grid_fixed_color Table%,0,255,0 grid_row_height Table%,25 grid_column Table%,Nbcol% grid_column_fixed Table%,0 font_name Table%,"consolas" font_size Table%,11 a$="107,239,120,129,139,128,169,179,199," c$=" date, lieu, Qte d'ess, Pour X Kms, Prix total, Prix au litre, Total compteur, Moyenne au 100, Moyenne générale,"
for i%=1 to Nbcol% v$= left$(a$,instr(a$,",")-1) vt$= left$(c$,instr(c$,",")-1) grid_one_column_width Table%,i%,val(v$) grid_write Table%,1,i%,vt$ if i%<9 a$=right$(a$,len(a$)-(len(v$)+1)) c$=right$(c$,len(c$)-(len(vt$)+1)) end_if next i% end_if end_sub
' choix d' un fichier à ouvrir sub OpenFile() dim_local a$ fic$="" Open_dialog Odial% dir_dialog Odial%,Mesdoc$ filter Odial%,"*.txt|*.txt" a$=file_name$(Odial%) delete Odial% if a$<>"_" fic$=a$ file_open_read Oread%,fic$ file_readln Oread%,a$ : Nbrow%=val(a$) file_readln Oread%,a$ : Nbcol%=val(a$) file_close Oread% end_if end_sub
' calcul du grid sub CalcGrid() message "calcul du grid" end_sub
' sortie par le menu sub Quitter() if object_exists(Table%)=1 if Etat%=2 if message_warning_yes_no("Un fichier est en cours d'utilisation."+chr$(13)+"Voulez vous enregistrer les modifications apportées ?")=1 dir_change Mesdoc$ grid_save Table%,Nbrow%,Nbcol%,fic$ end_if end_if end_if Terminate end_sub N' oublies pas de mettre la variable Mesdoc$ en fonction de ton dossier. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 26 Sep 2016 - 15:51 | |
| Je me suis un peu amusé avec ton idée... - Code:
-
variables() labels() gui() init() end
' ------------------------------------------------------------------------------
sub variables() dim_local i% dim Path$ : Path$=dir_current$ 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" dim ListeC$ : ListeC$=Path$+"ListeC.txt" dim Histo$ : Histo$ =Path$+"Histo.txt" dim PathCar$: PathCar$=Path$+"Vehicules\" dim KGF$ dim no% dim Mm% : no%=no%+1 : Mm%=no% dim Sm%(10) : for i%=1 to 10 : no%=no%+1 : Sm%(i%)=no% : next i% dim Pan%(4) : for i%=0 to 4 : no%=no%+1 : Pan%(i%)=no% : next i%
dim Alph%(7) : for i%=1 to 7 : no%=no%+1 : Alph%(i%)=no%: next i% dim Edi%(6) : for i%=1 to 6 : no%=no%+1 : Edi%(i%)=no% : next i% dim Comb% : no%=no%+1 : Comb%=no% dim Btn%(2) : for i%=1 to 2 : no%=no%+1 : Btn%(i%)=no% : next i% dim Gril% : no%=no%+1 : Gril%=no% dim Mem% : no%=no%+1 : Mem%=no% dim MemV% : no%=no%+1 : MemV%=no% dim ApanTtl%(5): for i%=1 to 5 : no%=no%+1 : ApanTtl%(i%)=no% : next i% dim Odial% : no%=no%+1 : Odial%=no% dim F_OW% : no%=no%+1 : F_OW%=no% dim F_OR% : no%=no%+1 : F_OR%=no% dim NbreR% dim NbreC% dim Etat% dim Car$ dim TotalKm dim TotalCarbu dim TotalEuro dim TotalConso dim Conso100 dim Minter end_sub
' ------------------------------------------------------------------------------
sub labels() label clic,L,close end_sub
' ------------------------------------------------------------------------------
sub gui() dim_local h%,w%,t%,a$,i%,l%,b$
height 0,650 width 0,1200 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 caption 0,"Carbu-Conso" on_close 0,close main_menu Mm%
sub_menu Sm%(1) : parent Sm%(1),Mm% : caption Sm%(1),"Véhicule" sub_menu Sm%(2) : parent Sm%(2),Sm%(1): caption Sm%(2),"Nouveau" : on_click Sm%(2),clic sub_menu Sm%(3) : parent Sm%(3),Sm%(1): caption Sm%(3),"Ouvrir" : on_click Sm%(3),clic sub_menu Sm%(4) : parent Sm%(4),Sm%(1): caption Sm%(4),"Enregistrer" : on_click Sm%(4),clic sub_menu Sm%(5) : parent Sm%(5),Sm%(1): caption Sm%(5),"-" sub_menu Sm%(6) : parent Sm%(6),Sm%(1): caption Sm%(6),"Quitter" : on_click Sm%(6),clic
sub_menu Sm%(7) : parent Sm%(7),Mm% : caption Sm%(7),"Affichage" sub_menu Sm%(8) : parent Sm%(8),Sm%(7): caption Sm%(8),"Table" : mark_on Sm%(8) : on_click Sm%(8),clic sub_menu Sm%(9) : parent Sm%(9),Sm%(7): caption Sm%(9),"Graphique" : mark_off Sm%(9): on_click Sm%(9),clic
panel Pan%(0) full_space Pan%(0) h%=height(Pan%(0)) w%=width(Pan%(0))
panel Pan%(1) 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,105 a$=" DATE, LIEU, COMPTEUR KM, RESERVOIR / L, QUANTITE / L, PRIX € / L, MONTANT €," t%=-30 for i%=1 to 7 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%<7 a$=right$(a$,len(a$)-instr(a$,",")) end_if font_name Alph%(i%),"Arial" font_bold Alph%(i%) next i% t%=-15 for i%=1 to 6 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 or i%=6 width Edi%(i%),80 end_if end_if top Edi%(i%),t% left Edi%(i%),10 font_name Edi%(i%),"Arial" next i% combo Comb% 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))-81 a$="Z,<," b$="Effacer le formulaire,Enregistrer le formulaire," for i%=1 to 2 l%=l%+27 button Btn%(i%) parent Btn%(i%),Pan%(1) height Btn%(i%),22 width Btn%(i%),22 top Btn%(i%),height(Pan%(1))-27 left Btn%(i%),l% if i%=2 font_name Btn%(i%),"Wingdings" font_size Btn%(i%),12 else font_name Btn%(i%),"Arial" end_if caption Btn%(i%),left$(a$,instr(a$,",")-1) hint Btn%(i%),left$(b$,instr(b$,",")-1) if i%<2 a$=right$(a$,len(a$)-instr(a$,",")) b$=right$(b$,len(b$)-instr(b$,",")) end_if cursor_point Btn%(i%) on_click Btn%(i%),clic next i% inactive Btn%(2) panel Pan%(2) 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,208,105 Grid Gril% 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%) color Gril%,254,240,205 inactive Gril% panel Pan%(3) 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),251,208,105 l%=-230 for i%=1 to 5 l%=l%+240 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) 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() 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
' ------------------------------------------------------------------------------ close: if Etat%=2 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 end_if return
' ------------------------------------------------------------------------------
clic: if number_click = Sm%(2) NewCar() return end_if
if number_click = Sm%(3) OpenCar() return end_if if number_click = Sm%(4) SaveCar() return end_if if number_click = Sm%(6) Quitter() return end_if if number_click = Sm%(8) mark_on Sm%(8) mark_off Sm%(9) hide Pan%(4) show Pan%(2) return end_if if number_click = Sm%(9) if Car$<>"" mark_on Sm%(9) mark_off Sm%(8) hide Pan%(2) show Pan%(4) Histogramme() else message "Vous devez ouvrir ou créer un fichier !" end_if return end_if if number_click = Btn%(1) ClearFormulaire() return end_if if number_click = Btn%(2) SaveFormulaire() return end_if return
' ------------------------------------------------------------------------------ sub InitialiseGrid(R%,C%) dim_local i%,a$ a$=" DATE, LIEU, COMPTEUR KM, RESERVOIR / L, QUANTITE / L, PRIX / L, MONTANT, L / 100,"
grid_row_fixed Gril%,1 grid_column_fixed Gril%,0 grid_row Gril%,R% grid_column Gril%,C% grid_one_column_width Gril%,1,100 grid_one_column_width Gril%,2,190 grid_one_column_width Gril%,3,100 grid_one_column_width Gril%,4,100 grid_one_column_width Gril%,5,100 grid_one_column_width Gril%,6,100 grid_one_column_width Gril%,7,100
grid_clear Gril%,2,8 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
' ------------------------------------------------------------------------------ sub SaveFormulaire() dim_local i%,a$,v%,mes$,M$ 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, reservoir, quantité, prix/l, montant for i%=2 to 6 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 ConsoMoyenInter() if Minter <> 0 : M$=str$(Minter) : else : M$="" : end_if
' ajout d' une ligne ou pas if len(grid_read$(Gril%,2,1))>0 NbreR%=NbreR%+1 grid_row_insert Gril%,NbreR% end_if
grid_write Gril%,NbreR%,1,text$(Edi%(1)) grid_write Gril%,NbreR%,2,text$(Comb%) grid_write Gril%,NbreR%,3,text$(Edi%(2)) grid_write Gril%,NbreR%,4,text$(Edi%(3)) grid_write Gril%,NbreR%,5,text$(Edi%(4)) grid_write Gril%,NbreR%,6,text$(Edi%(5)) grid_write Gril%,NbreR%,7,text$(Edi%(6)) grid_write Gril%,NbreR%,8,M$ ' initialisation du formulaire ClearFormulaire()
' calculs Calculer()
Etat%=2 end_sub
' ------------------------------------------------------------------------------ sub ClearFormulaire() dim_local i% for i%=1 to 6 : text Edi%(i%),"" : next i% text comb%,"" end_sub
' ------------------------------------------------------------------------------ sub NewCar() dim_local a$,b$,v%,i%
if Etat%=2 if message_warning_yes_no("Un fichier est en cours d' utilisation !"+chr$(13)+"Voulez vous sauvegarder vos modifications ?")=1 SaveCar() end_if InitialiseGrid(2,8) ClearFormulaire() end_if
L: if message_input("Nouveau véhicule","Immatriculation","")=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 else goto L end_if
caption 0,"Carbu-Conso"+" - "+Car$ active Btn%(2) active Gril% Etat%=1 else Etat%=0 Car$="" end_if end_sub
' ------------------------------------------------------------------------------ sub OpenCar() dim_local a$,f$,r$,c$
if Etat%=2 if message_warning_yes_no("Un fichier est en cours d' utilisation !"+chr$(13)+"Voulez vous sauvegarder vos modifications ?")=1 SaveCar() end_if InitialiseGrid(2,8) ClearFormulaire() end_if Open_dialog Odial% dir_dialog Odial%,PathCar$ filter Odial%,"*.car|*.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$) file_readln F_OR%,c$ NbreC%=val(c$) file_close F_OR% InitialiseGrid(NbreR%,NbreC%) grid_load Gril%,f$ caption 0,"Carbu-Conso"+" - "+Car$ active Btn%(2) active Gril% Calculer() Etat%=1 else Etat%=0 Car$="" end_if end_sub
' ------------------------------------------------------------------------------ sub SaveCar() dim_local f$ if Car$<>"" f$= PathCar$+Car$+".car" grid_save Gril%,NbreR%,NbreC%,f$ Etat%=1 end_if end_sub
' ------------------------------------------------------------------------------ sub Quitter() if Etat%=2 if message_warning_yes_no("Un fichier est en cours d' utilisation !"+chr$(13)+"Voulez vous sauvegarder vos modifications ?")=1 SaveCar() end_if end_if Terminate end_sub
' ------------------------------------------------------------------------------ sub Calculer() dim_local a$,b$,i% TotalKm = 0 TotalCarbu = 0 TotalEuro = 0 TotalConso = 0 Conso100 = 0 if NbreR%>2 ' nombre de km parcourus a$ = grid_read$(Gril%,2,3) b$ = grid_read$(Gril%,NbreR%,3) TotalKm = val(b$)-val(a$) ' nombre de litre achetés et total euros for i%=2 to NbreR% a$ = grid_read$(Gril%,i%,5) TotalCarbu = TotalCarbu+val(a$) b$ = grid_read$(Gril%,i%,7) TotalEuro = TotalEuro+val(b$) if i%=NbreR%-1 TotalConso = TotalCarbu end_if next i% ' consommation TotalConso = TotalConso+val(grid_read$(Gril%,2,4))-val(grid_read$(Gril%,NbreR%,4)) ' conso au 100 km Conso100 = (TotalConso/TotalKm)*100 caption ApanTtl%(1),"Distance parcourus : "+str$(TotalKm)+" Km" caption ApanTtl%(2),"Total acheté : "+str$(TotalCarbu)+" L" caption ApanTtl%(3),"Total dépensé : "+str$(TotalEuro)+" €" caption ApanTtl%(4),"Total consommé : "+str$(TotalConso)+" L" caption ApanTtl%(5),"Moyenne : "+str$(Conso100)+" L/100 km"
else caption ApanTtl%(1),"" caption ApanTtl%(2),"" caption ApanTtl%(3),"" caption ApanTtl%(4),"" caption ApanTtl%(5),"" message "Calcul impossible !"+chr$(13)+"Pas assez de données." end_if end_sub
' ------------------------------------------------------------------------------ sub ConsoMoyenInter() dim_local conso,dist if NbreR%=2 if len(grid_read$(Gril%,2,1))>0 conso = val(grid_read$(Gril%,2,4))+val(grid_read$(Gril%,2,5))-val(text$(Edi%(3))) dist = val(text$(Edi%(2)))-val(grid_read$(Gril%,2,3)) Minter =(conso/dist)*100 else Minter =0 end_if else if NbreR%>2 conso = val(grid_read$(Gril%,2,4))+val(grid_read$(Gril%,2,5))-val(text$(Edi%(3))) dist = val(text$(Edi%(2)))-val(grid_read$(Gril%,2,3)) Minter =(conso/dist)*100 end_if end_if end_sub
' ------------------------------------------------------------------------------ sub Histogramme() 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$
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" file_writeln F_OW%,a$ next i% file_writeln F_OW%,"#Minimum Y=0" file_writeln F_OW%,"#Maximum Y=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 | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 27 Sep 2016 - 14:31 | |
| correction : - Code:
-
variables() labels() gui() init() end
' ------------------------------------------------------------------------------
sub variables() dim_local i% dim Path$ : Path$=dir_current$ 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" dim ListeC$ : ListeC$=Path$+"ListeC.txt" dim Histo$ : Histo$ =Path$+"Histo.txt" dim PathCar$: PathCar$=Path$+"Vehicules\" dim KGF$ dim no% dim Mm% : no%=no%+1 : Mm%=no% dim Sm%(11) : for i%=1 to 11 : no%=no%+1 : Sm%(i%)=no% : next i% dim Pan%(4) : for i%=0 to 4 : no%=no%+1 : Pan%(i%)=no% : next i%
dim Alph%(7) : for i%=1 to 7 : no%=no%+1 : Alph%(i%)=no%: next i% dim Edi%(6) : for i%=1 to 6 : no%=no%+1 : Edi%(i%)=no% : next i% dim Comb% : no%=no%+1 : Comb%=no% dim BtnCpt% : no%=no%+1 : BtnCpt%=no% dim Btn%(2) : for i%=1 to 2 : no%=no%+1 : Btn%(i%)=no% : next i% dim Gril% : no%=no%+1 : Gril%=no% dim Mem% : no%=no%+1 : Mem%=no% dim MemV% : no%=no%+1 : MemV%=no% dim ApanTtl%(5): for i%=1 to 5 : no%=no%+1 : ApanTtl%(i%)=no% : next i% dim Odial% : no%=no%+1 : Odial%=no% dim F_OW% : no%=no%+1 : F_OW%=no% dim F_OR% : no%=no%+1 : F_OR%=no% dim NbreR% dim NbreC% dim Etat% dim Car$ dim TotalKm dim TotalCarbu dim TotalEuro dim TotalConso dim Conso100 dim Minter end_sub
' ------------------------------------------------------------------------------
sub labels() label clic,L,close,change end_sub
' ------------------------------------------------------------------------------
sub gui() dim_local h%,w%,t%,a$,i%,l%,b$
height 0,650 width 0,1200 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 caption 0,"Carbu-Conso" on_close 0,close main_menu Mm%
sub_menu Sm%(1) : parent Sm%(1),Mm% : caption Sm%(1),"Véhicule" sub_menu Sm%(2) : parent Sm%(2),Sm%(1): caption Sm%(2),"Nouveau" : on_click Sm%(2),clic sub_menu Sm%(3) : parent Sm%(3),Sm%(1): caption Sm%(3),"Ouvrir" : on_click Sm%(3),clic sub_menu Sm%(4) : parent Sm%(4),Sm%(1): caption Sm%(4),"Enregistrer" : on_click Sm%(4),clic sub_menu Sm%(5) : parent Sm%(5),Sm%(1): caption Sm%(5),"-" sub_menu Sm%(6) : parent Sm%(6),Sm%(1): caption Sm%(6),"Quitter" : on_click Sm%(6),clic
sub_menu Sm%(7) : parent Sm%(7),Mm% : caption Sm%(7),"Affichage" sub_menu Sm%(8) : parent Sm%(8),Sm%(7): caption Sm%(8),"Table" : mark_on Sm%(8) : on_click Sm%(8),clic sub_menu Sm%(9) : parent Sm%(9),Sm%(7): caption Sm%(9),"Graphique" : mark_off Sm%(9): on_click Sm%(9),clic
sub_menu Sm%(10) : parent Sm%(10),Mm% : caption Sm%(10),"Paramètres" sub_menu Sm%(11) : parent Sm%(11),Sm%(10): caption Sm%(11),"KGF.dll - Rechercher sur PC" : on_click Sm%(11),clic
panel Pan%(0) full_space Pan%(0) h%=height(Pan%(0)) w%=width(Pan%(0))
panel Pan%(1) 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,105 a$=" DATE, LIEU, COMPTEUR KM, RESERVOIR Nbre L, QUANTITE en L, PRIX € / L, MONTANT €," t%=-30 for i%=1 to 7 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%<7 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 6 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 or i%=6 width Edi%(i%),80 end_if end_if top Edi%(i%),t% left Edi%(i%),10 font_name Edi%(i%),"Arial" next i% combo Comb% 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 spin BtnCpt% parent BtnCpt%,Pan%(1) top BtnCpt%,top(Edi%(2)) left BtnCpt%,left(Edi%(2))+width(Edi%(2)) width BtnCpt%,20 min BtnCpt%,0 max BtnCpt%,10000000 position BtnCpt%,0 on_change BtnCpt%,change l%=width(Pan%(1))-81 a$="Z,<," b$="Effacer le formulaire,Enregistrer le formulaire," for i%=1 to 2 l%=l%+27 button Btn%(i%) parent Btn%(i%),Pan%(1) height Btn%(i%),22 width Btn%(i%),22 top Btn%(i%),height(Pan%(1))-27 left Btn%(i%),l% if i%=2 font_name Btn%(i%),"Wingdings" font_size Btn%(i%),12 else font_name Btn%(i%),"Arial" end_if caption Btn%(i%),left$(a$,instr(a$,",")-1) hint Btn%(i%),left$(b$,instr(b$,",")-1) if i%<2 a$=right$(a$,len(a$)-instr(a$,",")) b$=right$(b$,len(b$)-instr(b$,",")) end_if cursor_point Btn%(i%) on_click Btn%(i%),clic next i% inactive Btn%(2) panel Pan%(2) 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,208,105 Grid Gril% 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%) color Gril%,254,240,205 inactive Gril% panel Pan%(3) 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),251,208,105 l%=-230 for i%=1 to 5 l%=l%+240 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) 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() 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
' ------------------------------------------------------------------------------ close: if Etat%=2 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 end_if return
' ------------------------------------------------------------------------------ change: if number_change = BtnCpt% text Edi%(2),str$(Position(BtnCpt%)) return end_if return
' ------------------------------------------------------------------------------ clic: if number_click = Sm%(2) NewCar() return end_if
if number_click = Sm%(3) OpenCar() return end_if if number_click = Sm%(4) SaveCar() return end_if if number_click = Sm%(6) Quitter() return end_if if number_click = Sm%(8) mark_on Sm%(8) mark_off Sm%(9) hide Pan%(4) show Pan%(2) return end_if if number_click = Sm%(9) if Car$<>"" mark_on Sm%(9) mark_off Sm%(8) hide Pan%(2) show Pan%(4) Histogramme() else message "Vous devez ouvrir ou créer un fichier !" end_if return end_if if number_click = Sm%(11) FindKgfdll() return end_if if number_click = Btn%(1) ClearFormulaire() return end_if if number_click = Btn%(2) SaveFormulaire() return end_if return
' ------------------------------------------------------------------------------ sub InitialiseGrid(R%,C%) dim_local i%,a$ a$=" DATE, LIEU, COMPTEUR (KM), RESERVOIR (L), QUANTITE (L), PRIX € / L, MONTANT €, L / 100,"
grid_row_fixed Gril%,1 grid_column_fixed Gril%,0 grid_row Gril%,R% grid_column Gril%,C% grid_one_column_width Gril%,1,100 grid_one_column_width Gril%,2,190 grid_one_column_width Gril%,3,100 grid_one_column_width Gril%,4,100 grid_one_column_width Gril%,5,100 grid_one_column_width Gril%,6,100 grid_one_column_width Gril%,7,100
grid_clear Gril%,2,8 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
' ------------------------------------------------------------------------------ sub SaveFormulaire() dim_local i%,a$,v%,mes$,M$ 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, reservoir, quantité, prix/l, montant for i%=2 to 6 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 ConsoMoyenInter() if Minter <> 0 : M$=str$(Minter) : else : M$="" : end_if
' ajout d' une ligne ou pas if len(grid_read$(Gril%,2,1))>0 NbreR%=NbreR%+1 grid_row_insert Gril%,NbreR% end_if
grid_write Gril%,NbreR%,1,text$(Edi%(1)) grid_write Gril%,NbreR%,2,text$(Comb%) grid_write Gril%,NbreR%,3,text$(Edi%(2)) grid_write Gril%,NbreR%,4,text$(Edi%(3)) grid_write Gril%,NbreR%,5,text$(Edi%(4)) grid_write Gril%,NbreR%,6,text$(Edi%(5)) grid_write Gril%,NbreR%,7,text$(Edi%(6)) grid_write Gril%,NbreR%,8,M$ ' initialisation du formulaire ClearFormulaire()
' calculs Calculer()
Etat%=2 end_sub
' ------------------------------------------------------------------------------ sub ClearFormulaire() dim_local i% for i%=1 to 6 : text Edi%(i%),"" : next i% text comb%,"" end_sub
' ------------------------------------------------------------------------------ sub NewCar() dim_local a$,b$,v%,i%
if Etat%=2 if message_warning_yes_no("Un fichier est en cours d' utilisation !"+chr$(13)+"Voulez vous sauvegarder vos modifications ?")=1 SaveCar() end_if InitialiseGrid(2,8) ClearFormulaire() end_if
L: if message_input("Nouveau véhicule","Immatriculation","")=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 else goto L end_if
caption 0,"Carbu-Conso"+" - "+Car$ active Btn%(2) active Gril% Etat%=1 else Etat%=0 Car$="" end_if end_sub
' ------------------------------------------------------------------------------ sub OpenCar() dim_local a$,f$,r$,c$
if Etat%=2 if message_warning_yes_no("Un fichier est en cours d' utilisation !"+chr$(13)+"Voulez vous sauvegarder vos modifications ?")=1 SaveCar() end_if InitialiseGrid(2,8) ClearFormulaire() end_if Open_dialog Odial% dir_dialog Odial%,PathCar$ filter Odial%,"*.car|*.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$) file_readln F_OR%,c$ NbreC%=val(c$) file_close F_OR% InitialiseGrid(NbreR%,NbreC%) grid_load Gril%,f$ caption 0,"Carbu-Conso"+" - "+Car$ active Btn%(2) active Gril% Calculer() text Edi%(2),grid_read$(Gril%,NbreR%,3) position BtnCpt%,val(grid_read$(Gril%,NbreR%,3)) Etat%=1 else Etat%=0 Car$="" end_if end_sub
' ------------------------------------------------------------------------------ sub SaveCar() dim_local f$ if Car$<>"" f$= PathCar$+Car$+".car" grid_save Gril%,NbreR%,NbreC%,f$ Etat%=1 end_if end_sub
' ------------------------------------------------------------------------------ sub Quitter() if Etat%=2 if message_warning_yes_no("Un fichier est en cours d' utilisation !"+chr$(13)+"Voulez vous sauvegarder vos modifications ?")=1 SaveCar() end_if end_if Terminate end_sub
' ------------------------------------------------------------------------------ sub Calculer() dim_local a$,b$,i% TotalKm = 0 TotalCarbu = 0 TotalEuro = 0 TotalConso = 0 Conso100 = 0 if NbreR%>2 ' nombre de km parcourus a$ = grid_read$(Gril%,2,3) b$ = grid_read$(Gril%,NbreR%,3) TotalKm = val(b$)-val(a$) ' nombre de litre achetés et total euros for i%=2 to NbreR% a$ = grid_read$(Gril%,i%,5) TotalCarbu = TotalCarbu+val(a$) b$ = grid_read$(Gril%,i%,7) TotalEuro = TotalEuro+val(b$) if i%=NbreR%-1 TotalConso = TotalCarbu end_if next i% ' consommation TotalConso = TotalConso+val(grid_read$(Gril%,2,4))-val(grid_read$(Gril%,NbreR%,4)) ' conso au 100 km Conso100 = (TotalConso/TotalKm)*100 Conso100 = Conso100*100 Conso100 = int(Conso100)/100 caption ApanTtl%(1),"Distance parcourus : "+str$(TotalKm)+" Km" caption ApanTtl%(2),"Total acheté : "+str$(TotalCarbu)+" L" caption ApanTtl%(3),"Total dépensé : "+str$(TotalEuro)+" €" caption ApanTtl%(4),"Total consommé : "+str$(TotalConso)+" L" caption ApanTtl%(5),"Moyenne : "+str$(Conso100)+" L/100 km"
else caption ApanTtl%(1),"" caption ApanTtl%(2),"" caption ApanTtl%(3),"" caption ApanTtl%(4),"" caption ApanTtl%(5),"" message "Calcul impossible !"+chr$(13)+"Pas assez de données." end_if end_sub
' ------------------------------------------------------------------------------ sub ConsoMoyenInter() dim_local conso,dist if NbreR%=2 if len(grid_read$(Gril%,2,1))>0 conso = val(grid_read$(Gril%,2,4))+val(grid_read$(Gril%,2,5))-val(text$(Edi%(3))) dist = val(text$(Edi%(2)))-val(grid_read$(Gril%,2,3)) Minter =(conso/dist)*100 else Minter =0 end_if else if NbreR%>2 conso = val(grid_read$(Gril%,NbreR%-1,4))+val(grid_read$(Gril%,NbreR%-1,5))-val(text$(Edi%(3))) dist = val(text$(Edi%(2)))-val(grid_read$(Gril%,NbreR%-1,3)) Minter =(conso/dist)*100 end_if end_if Minter=Minter*100 Minter=int(Minter)/100 end_sub
' ------------------------------------------------------------------------------ sub Histogramme() 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%
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=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
' ------------------------------------------------------------------------------ sub FindKgfdll() dim_local a$ Open_dialog Odial% dir_dialog Odial%,"C:\" filter Odial%,"*.dll|*.dll" a$=file_name$(Odial%) delete Odial% if a$<>"_" if upper$(file_extract_name$(a$))= "KGF.DLL" if file_exists(Param$)=1 file_delete Param$ end_if kgf$ = a$ file_open_write F_OW%,Param$ file_writeln F_OW%,a$ file_close F_OW% active Sm%(9) end_if end_if end_sub
Dernière édition par ygeronimi le Mer 28 Sep 2016 - 12:37, édité 1 fois (Raison : ajout du menu paramètres) | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: pourquoi cette erreur? Mar 27 Sep 2016 - 18:58 | |
| bonjour a tous . je suis de retour et oh surprise ygeronimi s'amuse avec mon petit projet.c'est tres bien. je vois que d'une petite idée on peu faire de grandes choses. je vais poser une question a ygeronimi : a quel endroit faut-il que je mette la ligne contenant l'adresse de la dll de klaus? mon adresse est :C:\Users\Roger\Documents\Langage-Panoramic\dll_klaus\kgf.dll . par contre , je peine a suivre ce code ( je ne suis qu'un tout petit programmeur ). je continue ma lecture des derniers sujets. +plus
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 28 Sep 2016 - 11:17 | |
| Pour kgf, il y a deux solutions:
soit tu veux que ton programme ait un exemplaire de la dll et tu en places une copie dans le dossier du source. (si un fichier param.inf a déjà été créé, détruit le.)
soit, comme beaucoup d' entre nous, tu l' as dans un de tes dossier et tu lances le programme qui te proposeras de récupérer son emplacement et créera un fichier param.inf qui contiendra son adresse.
PS: je viens d' ajouter un menu paramètres qui permet de modifier l' adresse de kgf une fois le programme lancé et sans avoir à le redémarrer. | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: pourquoi cette erreur? Mer 28 Sep 2016 - 19:38 | |
| [left] bonjour a tous @ ygeronimi ce soir ( il est 19h37) je n'ai pas le temps de regarder ta modif et d'étudier ton code . reprise demain bonne soirée a vous [/left | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: pourquoi cette erreur? Ven 30 Sep 2016 - 17:28 | |
| bonjour a tous @ ygeronimi. je vais essayer d'être précis dans ce que j'écris. si je peux me permettre , j'aimerai te demander de me documenter tes variables ,car sans cela je ne peu comprendre. exp: dim odial% ; f_ow% et les autres. bien sur cela change complètement avec ma façon de faire qui est bien simple. autre chose: pourquoi demander la capacité du reservoir ? dans mon projet ,qui correspond a ma façon de faire, je me fiche de cette capacité. ce que je fais : au bout de 300/400 kms ,je fais un complément de plein donc quantité d'essence mise pour x kms parcourus .je remets systématiquement le journalier a zéro qui accumule les kms jusqu'au prochain complément d'ou mon calcul:qté d'ess pour x kms. qté/xkms*100. et pour finir question: quelle est ta méthode ? dessin sur papier ou élaboration au fur et a mesure ? et merci de prendre le temps de me lire
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 30 Sep 2016 - 19:59 | |
| Ok... En principe, je visualise ce que je veux faire puis j' en fais l' interface. Ensuite j' accroche les fonctions les unes après les autres. Je ne passe pas par une étape papier car je suis trop fainéant et faire 2 fois la même chose... Ce que tu appelles la capacité du réservoir est en faite ce qu' il reste dans ce réservoir lorsque tu passes à la pompe. Les voitures de maintenant et leur ordi de bord te le donne sans problème, si tu as une DS des années 70 c' est plus compliqué. Pour les variables d' objets, j' utilise l' implémentation par la variable no% et l' affectation d' une variable à ce numéro d' objet ce qui donne un nom à ce numéro et rend le tout plus souple. D'autre part, je fais la numérotation dès le début ainsi je peux supprimer un objet et le recréer avec le même numéro, exemple : Odial% représente le numéro affecté pour l' objet Open_Dialog. Je peux le détruire et le recréer à volonté. F_OW% et F_OR% sont pour file_open_write et file_open_read. | |
| | | Contenu sponsorisé
| Sujet: Re: pourquoi cette erreur? | |
| |
| | | | pourquoi cette erreur? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |