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 |
|
|
| [Résolu] Un truc assez bizarre | |
| | Auteur | Message |
---|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 19:56 | |
| Difficile à expliquer, le plus simple c'est de voir l'exemple ci-dessous: Désolé si c'est un peu long... Lancez le prog ci-dessous puis regardez les explications du post... - Code:
-
hide 0
LABEL Calc LABEL KeyboardTimer, ActiveKeyTimer,CtrlSaisie LABEL Celsius2Fahrenheit,Kelvin2Celsius,Fahrenheit2Celcius LABEL Gh2Th,Th2Gh,Tac2Kh,Kh2Tac ' -------------------------------------------- ' Variables de calcul ' -------------------------------------------- dim bac_hauteur,bac_longueur,bac_profondeur,bac_epaisseur dim bac_volume,bac_poids dim bac_celsius,bac_kelvin,bac_fahrenheit dim bac_th,bac_gh,bac_kh,bac_tac
dim baci_hauteur,baci_longueur,baci_profondeur dim baci_cm,baci_volume
' -------------------------------------------- ' Définition du formulaire de saisie ' -------------------------------------------- dim sbac_hauteur,sbac_longueur,sbac_profondeur,sbac_epaisseur dim sbac_volume,sbac_poids sbac_hauteur=100:sbac_longueur=102:sbac_profondeur=104:sbac_epaisseur=106 sbac_volume=118:sbac_poids=120
dim sbaci_volume,sbaci_cm,sbaci_poids sbaci_volume=200:sbaci_cm=202:sbaci_poids=204 dim sbac_kelvin,sbac_celsius,sbac_fahrenheit sbac_kelvin=300:sbac_celsius=302:sbac_fahrenheit=304
dim sbac_kh,sbac_tac,sbac_th,sbac_gh sbac_kh=400:sbac_tac=402:sbac_th=404:sbac_gh=406
dim bCalcul
' construction des champs dim i,j dim nb_cont,id_cont: nb_cont=5 dim nb_ele dim txt$,value,value2
data 1,"Dimensions",10,10,4 : ' n° Container, left, top, nb d'element data "Longueur (m) :",sbac_longueur,1.5,"" data "Hauteur (m) :",sbac_hauteur,0.5,"" data "Profondeur (m) :",sbac_profondeur,0.5,"" data "Epaisseur du verre (mm) :",sbac_epaisseur,8,"Note:la densité pour du verre sodo-calcique de qualité courante est de 2,53"
data 2,"Volumes",left(1)+width(1)+10,10,4 data "Volume brut (litre) :",sbac_volume,0,"" data "Volume interne (litre):",sbaci_volume,0,"" data "Poids à vide (kg):",sbac_poids,0,"le poids ne tient pas compte du poids des renforts, des entretoises, raidisseurs et verre de couverture" data "Nb litres/cm:",sbaci_cm,0,""
data 3,"Temperatures",10,top(1)+height(1)+10,3 data "Celsius :",sbac_celsius,26,"" data "Fahrenheit:",sbac_fahrenheit,78.8,"" data "Kelvin :",sbac_kelvin,299.15,"le poids ne tient pas compte du poids des renforts, des entretoises, raidisseurs et verre de couverture"
data 4,"Dureté carbonaté (temporaire)",left(3)+width(3)+10,top(3),2 data "T.A.C (°f):",sbac_tac,10,"Titre Alcalimétrique" data "KH (°d):",sbac_kh,10,"Karbonat Härte"
data 5,"Dureté totale",10,top(3)+height(3)+10,2 data "GH (°d)",sbac_gh,10,"Gesamthärte" data "TH (°f)",sbac_th,10,"titre hydrotimétrique"
for i = 1 to nb_cont read id_cont: container id_cont : read txt$: caption id_cont,txt$ read value: left id_cont,value : read value: top id_cont,value read nb_ele : height id_cont,((nb_ele+1)*20)+10 : width id_cont,200 for j=1 to nb_ele read txt$ : read value edit value : left value, 118+10 : top value,(20*j):width value, 50: parent value,id_cont on_change value,CtrlSaisie : ' <---- C'est cette ligne qui provoque l'erreur alpha value+1 : caption value+1, txt$ : left value+1, 10 : top value+1,top(value)+5 : parent value+1, id_cont read value2: text value, str$(value2) if (value2=0) color value,200,255,200 inactive value end_if read txt$:hint value,txt$ next j next i
' timer pour traitement de saisie des champs DIM KeyboardTimer% : KeyboardTimer% = 1000 TIMER KeyboardTimer% : TIMER_OFF KeyboardTimer% : TIMER_INTERVAL KeyboardTimer%,3000 ON_TIMER KeyboardTimer%,KeyboardTimer
' les evenements : ' on_change sbac_longueur, CtrlSaisie ' on_change sbac_hauteur, CtrlSaisie ' on_change sbac_profondeur, CtrlSaisie ' on_change sbac_epaisseur, CtrlSaisie ' on_change sbac_celsius,CtrlSaisie ' on_change sbac_kelvin,CtrlSaisie ' on_change sbac_fahrenheit,CtrlSaisie ' on_change sbac_th,CtrlSaisie ' on_change sbac_gh,CtrlSaisie ' on_change sbac_tac,CtrlSaisie ' on_change sbac_kh,CtrlSaisie
gosub Calc show 0 END
' =============================================================================================== ' =============================================================================================== ' ---------------------------------------------------------------- ' Edition ' ---------------------------------------------------------------- CtrlSaisie: if numeric(text$(number_change)) = 1 if number_change = sbac_celsius then bCalcul=1 if number_change = sbac_kelvin then bCalcul=2 if number_change = sbac_fahrenheit then bCalcul=3 if number_change = sbac_th then bCalcul=4 if number_change = sbac_gh then bCalcul=5 if number_change = sbac_kh then bCalcul=6 if number_change = sbac_tac then bCalcul=7
gosub ActiveKeyTimer end_if return
' Calculs divers Calc: bac_longueur = val(text$(sbac_longueur)) bac_hauteur = val(text$(sbac_hauteur)) bac_profondeur = val(text$(sbac_profondeur)) bac_epaisseur = val(text$(sbac_epaisseur))/1000 ' dimensions internes baci_longueur = bac_longueur - ( 2 * bac_epaisseur) baci_hauteur = bac_hauteur - bac_epaisseur baci_profondeur = bac_profondeur - ( 2 * bac_epaisseur) ' calcul du volume brut bac_volume = bac_longueur * bac_hauteur * bac_profondeur * 1000 text sbac_volume,str$(int(bac_volume*10)/10) ' calcul du volume interne baci_volume =(baci_longueur * baci_hauteur * baci_profondeur) * 1000 text sbaci_volume,str$(int(baci_volume*10)/10) ' calcul du volume des vitres (pour détermination du poids du bac à vide : ' la densité pour du verre sodo-calcique de qualité courante est de 2,53. ' le poids ne tient pas compte du poids des renforts, des entretoises, raidisseurs et verre de couverture bac_poids = (bac_volume - baci_volume) * 2.53 text sbac_poids,str$(int(bac_poids*100)/100) ' calcul du nombre de litre / cm baci_cm = baci_longueur * baci_profondeur * 10 text sbaci_cm, str$(int(baci_cm*100)/100) select bCalcul case 1: gosub Celsius2Fahrenheit : ' celsius case 2: gosub Kelvin2Celsius : ' kelvin case 3: gosub Fahrenheit2Celcius : ' fahrenheit case 4: gosub Th2Gh : ' TH -> GH case 5: gosub Gh2Th : ' GH -> TH case 6: gosub Kh2Tac : ' KH -> TAC case 7: gosub Tac2Kh : ' TAC -> KH end_select bCalcul = 0
return ' -------------------------------- ' conversion dureté ' -------------------------------- Th2Gh: bac_th =val(text$(sbac_th)) : bac_gh = 0.5603 * bac_th off_change sbac_gh: text sbac_gh,str$(int(bac_gh*100)/100): on_change sbac_gh,CtrlSaisie return
Gh2Th: bac_gh = val(text$(sbac_gh)) : bac_th = bac_gh / 0.5603 off_change sbac_th : text sbac_th,str$(int(bac_th*100)/100): on_change sbac_th,CtrlSaisie return Kh2Tac: bac_kh = val(text$(sbac_kh)): bac_tac = bac_kh * 1.7848 off_change sbac_tac:text sbac_tac,str$(int(bac_tac*100)/100):on_change sbac_tac,CtrlSaisie return Tac2Kh: bac_tac = val(text$(sbac_tac)) : bac_kh = bac_tac / 1.7848 off_change sbac_kh:text sbac_kh,str$(int(bac_kh*100)/100):on_change sbac_kh,CtrlSaisie return ' -------------------------------- ' conversion Celsius / Fahrenheit ' -------------------------------- Celsius2Fahrenheit: bac_celsius = val(text$(sbac_celsius)) bac_fahrenheit = 32 + (9 * bac_celsius) / 5 bac_kelvin = bac_celsius + 273.15 : ' 1 °C = 273.15 kelvin off_change sbac_fahrenheit : off_change sbac_kelvin text sbac_fahrenheit,str$(int(bac_fahrenheit*10)/10) text sbac_kelvin,str$(int(bac_kelvin*100)/100) on_change sbac_fahrenheit, CtrlSaisie : on_change sbac_kelvin, CtrlSaisie return
' -------------------------------- ' conversion Fahrenheit / Celsius ' -------------------------------- Fahrenheit2Celcius: bac_fahrenheit = val(text$(sbac_fahrenheit)) bac_celsius = (bac_fahrenheit - 32) * 5 / 9 bac_kelvin = bac_celsius + 273.15 off_change sbac_celsius: off_change sbac_kelvin text sbac_celsius,str$(int(bac_celsius*10)/10) text sbac_kelvin,str$(int(bac_kelvin*100)/100) on_change sbac_celsius, CtrlSaisie : on_change sbac_kelvin, CtrlSaisie return ' -------------------------------- ' conversion Kelvin ' -------------------------------- Kelvin2Celsius: bac_kelvin = val(text$(sbac_kelvin)) bac_celsius = bac_kelvin - 273.15 bac_fahrenheit = 32 + (9 * bac_celsius) / 5 off_change sbac_celsius:off_change sbac_fahrenheit text sbac_celsius,str$(int(bac_celsius*10)/10) text sbac_fahrenheit,str$(int(bac_fahrenheit*10)/10) on_change sbac_celsius, CtrlSaisie : on_change sbac_fahrenheit, CtrlSaisie return
ActiveKeyTimer: TIMER_OFF KeyboardTimer% TIMER_INTERVAL KeyboardTimer%, 1200 : ' réarme la bdt du timer TIMER_ON KeyboardTimer% RETURN
KeyboardTimer: TIMER_OFF KeyboardTimer% : ' désactive GOSUB Calc RETURN
On tombe sur le message d'erreur : "KEYBOARDTIMER% is not a valid floating point value." Ok, sachant que le problème ne vient pas de là, je décide de déplacer les lignes ci-dessous tout en haut du prog juste après la déclaration des labels... - Code:
-
DIM KeyboardTimer% : KeyboardTimer% = 1000 TIMER KeyboardTimer% : TIMER_OFF KeyboardTimer% : TIMER_INTERVAL KeyboardTimer%,3000 ON_TIMER KeyboardTimer%,KeyboardTimer J'obtiens le message : Not correct Arithmetic Expression: OBJECT Does not exist. Line 135 c'est la 2eme ligne qui se trouve dans la procédure Calc : - Code:
-
bac_hauteur = val(text$(sbac_hauteur)) Ok, le problème ne proviens pas de là mais le message d'erreur est peut être correct... je m'explique: Si on regarde bien le code, j'ai mis en commentaire toute une série de on_change. J'ai voulu remplacer ceci par un simple on_change dans la boucle "for j" qui se trouve juste au dessus (j'ai mis un commentaire sur cette ligne). Mon idée: comme un peu ecrire des expressions dans des datas et qu'apparemment cela ne pose pas de problème pour créer des objets EDIT, je me suis dis que je pouvais faire pareil pour la déclaration des évènements... Ben... ça marche pas ! Si on met cette fameuse ligne en commentaire : - Code:
-
on_change value,CtrlSaisie : ' <---- C'est cette ligne qui provoque l'erreur
et qu'on revalide la série de on_change après, le programme fonctionne à merveille!... Conclusion :Je dois donc déclarer individuellement chaque évènement. OK... c'est pas grave... Là où c'est un peu plus gênant c'est que Panoramic signale une erreur mais qu'il n'est pas capable d'identifier la nature et la ligne où c'est produit cette erreur... il part en choucroute (c'est pas de la chto...stoeffer ) et affiche des messages d'erreurs farfelus... PS : J'ai fait un test avec le mode TRACE_ON, cela n'apporte pas le moindre indice...
Dernière édition par Nardo26 le Jeu 1 Déc 2011 - 18:07, édité 1 fois | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 20:06 | |
| Salut Nardo ce serait pas un mot réservé par hasard ? | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 20:10 | |
| Hello minifly ! non non, c'est bien cette ligne: - Code:
-
on_change value,CtrlSaisie Si tu l'a met en commentaire, il n'y a plus de problème.... | |
| | | Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 20:57 | |
| Il n'y a aucune raison que tu ne puisses pas mettre cette ligne dans la boucle for: - Code:
-
on_change value,CtrlSaisie On dirait qu'une erreur est détectée à la sortie de cette boucle for. Je regarde ce problème, mais je n'ai pas beaucoup de temps libre, car je suis en déplacement dans ma chère Arabie Saoudite. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 21:17 | |
| Pas de problème Jack ! J'ai contourné le problème... donc ça presse pas... C'est juste une remontée d'info... | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 22:06 | |
| Pour avancer dans le smilblik... En effet, le on_change value,CtrlSaisie fonctionne suivant où il se situe dans la boucle for... Extrait: - Code:
-
for i = 1 to nb_cont read id_cont: container id_cont : read txt$: caption id_cont,txt$ read value: left id_cont,value : read value: top id_cont,value read nb_ele : height id_cont,((nb_ele+1)*20)+10 : width id_cont,200 for j=1 to nb_ele read txt$ : read value edit value : left value, 118+10 : top value,(20*j):width value, 50: parent value,id_cont on_change value,CtrlSaisie : ' <-- là plantage alpha value+1 : caption value+1, txt$ : left value+1, 10 : top value+1,top(value)+5 : parent value+1, id_cont read value2: text value, str$(value2) if (value2=0) color value,200,255,200 inactive value end_if read txt$:hint value,txt$ ' on_change value,CtrlSaisie : ' <--- ici pas de problème next j next i
| |
| | | Invité Invité
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 22:50 | |
| Bonsoir, Je regarde le bout de code que tu as, le dernier, le premier étant trop long, et j'ai pas le temps. Je crois avoir compris, mais avec qu'une partie du code, ce n'est pas suffisant pour être affirmatif. Je l'ai expliqué plusieurs fois. Tu définis un EDIT, et tu lui mets de suite un ON_CHANGE. Ors ensuite tu y mets du texte dedans par - Citation :
- text value, str$(value2)
, et là il y a problème, car par ce bout de code tu fais réagir le on_change. Est-ce tout est bien défini à ce moment là pour que ça fonctionne? Le fonctionnement du code par on_change est-il valide?. Prends l'habitude de mettre les on_change, comme les timer vers la fin, en tout cas lorsque cela est défini. , Sinon il m'arrive de devoir mettre un texte dans un edit, et je ne veux pas qu'il y ait interaction, donc à ce moment là, je mets: off_change..., et une fois le texte mis en place, je rétabli le on_change. As toi de voir si cela correspond à ce cas de figure. |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 23:00 | |
| Merci cosmos pour ta réponse. Bien que tous les objets ne soient pas définis, l'évènement on_change provoqué par TEXT ne devrait pas planter... La procédure CtrlSaisie quand à elle est bien définie... J'ai amélioré la lisibilité de mon code : - Code:
-
hide 0
LABEL KeyboardTimer, ActiveKeyTimer,CtrlSaisie
LABEL Calc LABEL Celsius2Fahrenheit,Kelvin2Celsius,Fahrenheit2Celcius LABEL Gh2Th,Th2Gh,Tac2Kh,Kh2Tac
' timer pour traitement de saisie des champs DIM KeyboardTimer% : KeyboardTimer% = 1000 TIMER KeyboardTimer% : TIMER_OFF KeyboardTimer% : TIMER_INTERVAL KeyboardTimer%,3000 ON_TIMER KeyboardTimer%,KeyboardTimer
' -------------------------------------------- ' Variables de calcul ' -------------------------------------------- dim bac_hauteur,bac_longueur,bac_profondeur,bac_epaisseur dim bac_volume,bac_poids dim bac_celsius,bac_kelvin,bac_fahrenheit dim bac_th,bac_gh,bac_kh,bac_tac
dim baci_hauteur,baci_longueur,baci_profondeur dim baci_cm,baci_volume
' -------------------------------------------- ' Définition du formulaire de saisie ' --------------------------------------------
dim bCalcul
' construction des champs dim i,j dim nb_cont,id_cont: nb_cont=5 dim nb_ele dim txt$,value,value2
data 1,"Dimensions",10,10,4 : ' n° Container, left, top, nb d'element dim sbac_longueur : sbac_longueur = 100 : data "Longueur (m) :",sbac_longueur,1.5,"" dim sbac_hauteur : sbac_hauteur = 102 : data "Hauteur (m) :",sbac_hauteur,0.5,"" dim sbac_profondeur: sbac_profondeur= 104 : data "Profondeur (m) :",sbac_profondeur,0.5,"" dim sbac_epaisseur : sbac_epaisseur = 106 : data "Epaisseur du verre (mm) :",sbac_epaisseur,8,"Note:la densité pour du verre sodo-calcique de qualité courante est de 2,53"
data 2,"Volumes",left(1)+width(1)+10,10,4 dim sbac_volume : sbac_volume = 108 : data "Volume brut (litre) :",sbac_volume,0,"" dim sbaci_volume : sbaci_volume = 110 : data "Volume interne (litre):",sbaci_volume,0,"" dim sbac_poids : sbac_poids = 112 : data "Poids à vide (kg):",sbac_poids,0,"le poids ne tient pas compte du poids des renforts, des entretoises, raidisseurs et verre de couverture" dim sbaci_cm : sbaci_cm = 114 : data "Nb litres/cm:",sbaci_cm,0,""
data 3,"Temperatures",10,top(1)+height(1)+10,3 dim sbac_celsius : sbac_celsius = 116 : data "Celsius :",sbac_celsius,26,"" dim sbac_fahrenheit: sbac_fahrenheit= 118 : data "Fahrenheit:",sbac_fahrenheit,78.8,"" dim sbac_kelvin : sbac_kelvin = 120 : data "Kelvin :",sbac_kelvin,299.15,""
data 4,"Dureté carbonaté (temporaire)",left(3)+width(3)+10,top(3),2 dim sbac_tac : sbac_tac = 122 : data "T.A.C (°f):",sbac_tac,10,"Titre Alcalimétrique" dim sbac_kh : sbac_kh = 124 : data "KH (°d):",sbac_kh,10,"Karbonat Härte"
data 5,"Dureté totale",10,top(3)+height(3)+10,2 dim sbac_gh : sbac_gh = 126 : data "GH (°d)",sbac_gh,10,"Gesamthärte" dim sbac_th : sbac_th = 128 : data "TH (°f)",sbac_th,10,"titre hydrotimétrique"
for i = 1 to nb_cont read id_cont: container id_cont : read txt$: caption id_cont,txt$ read value: left id_cont,value : read value: top id_cont,value read nb_ele : height id_cont,((nb_ele+1)*20)+10 : width id_cont,200 for j=1 to nb_ele read txt$ : read value edit value : left value, 118+10 : top value,(20*j):width value, 50: parent value,id_cont ' on_change value,CtrlSaisie : ' <--- ici problème
alpha value+1 : caption value+1, txt$ : left value+1, 10 : top value+1,top(value)+5 : parent value+1, id_cont read value2: text value, str$(value2) if (value2=0) color value,200,255,200 inactive value end_if read txt$:hint value,txt$ on_change value,CtrlSaisie : ' <--- ici pas de problème next j next i
gosub Calc show 0 END
' =============================================================================================== ' =============================================================================================== ' ---------------------------------------------------------------- ' Edition ' ---------------------------------------------------------------- CtrlSaisie: if numeric(text$(number_change)) = 1 if number_change = sbac_celsius then bCalcul=1 if number_change = sbac_kelvin then bCalcul=2 if number_change = sbac_fahrenheit then bCalcul=3 if number_change = sbac_th then bCalcul=4 if number_change = sbac_gh then bCalcul=5 if number_change = sbac_kh then bCalcul=6 if number_change = sbac_tac then bCalcul=7 ' dommage qu'on puisse pas faire : ' select number_change ' case sbac_kelvin: ... ' case sbac_celsius: .... ' ... ' end_select gosub ActiveKeyTimer end_if return
' Calculs divers Calc: bac_longueur = val(text$(sbac_longueur)) bac_hauteur = val(text$(sbac_hauteur)) bac_profondeur = val(text$(sbac_profondeur)) bac_epaisseur = val(text$(sbac_epaisseur))/1000 ' dimensions internes baci_longueur = bac_longueur - ( 2 * bac_epaisseur) baci_hauteur = bac_hauteur - bac_epaisseur baci_profondeur = bac_profondeur - ( 2 * bac_epaisseur) ' calcul du volume brut bac_volume = bac_longueur * bac_hauteur * bac_profondeur * 1000 text sbac_volume,str$(int(bac_volume*10)/10) ' calcul du volume interne baci_volume =(baci_longueur * baci_hauteur * baci_profondeur) * 1000 text sbaci_volume,str$(int(baci_volume*10)/10) ' calcul du volume des vitres (pour détermination du poids du bac à vide : ' la densité pour du verre sodo-calcique de qualité courante est de 2,53. ' le poids ne tient pas compte du poids des renforts, des entretoises, raidisseurs et verre de couverture bac_poids = (bac_volume - baci_volume) * 2.53 text sbac_poids,str$(int(bac_poids*100)/100) ' calcul du nombre de litre / cm baci_cm = baci_longueur * baci_profondeur * 10 text sbaci_cm, str$(int(baci_cm*100)/100) select bCalcul case 1: gosub Celsius2Fahrenheit : ' celsius case 2: gosub Kelvin2Celsius : ' kelvin case 3: gosub Fahrenheit2Celcius : ' fahrenheit case 4: gosub Th2Gh : ' TH -> GH case 5: gosub Gh2Th : ' GH -> TH case 6: gosub Kh2Tac : ' KH -> TAC case 7: gosub Tac2Kh : ' TAC -> KH end_select bCalcul = 0
return ' -------------------------------- ' conversion dureté ' -------------------------------- Th2Gh: bac_th =val(text$(sbac_th)) : bac_gh = 0.5603 * bac_th off_change sbac_gh: text sbac_gh,str$(int(bac_gh*100)/100): on_change sbac_gh,CtrlSaisie return Gh2Th: bac_gh = val(text$(sbac_gh)) : bac_th = bac_gh / 0.5603 off_change sbac_th : text sbac_th,str$(int(bac_th*100)/100): on_change sbac_th,CtrlSaisie return Kh2Tac: bac_kh = val(text$(sbac_kh)): bac_tac = bac_kh * 1.7848 off_change sbac_tac:text sbac_tac,str$(int(bac_tac*100)/100):on_change sbac_tac,CtrlSaisie return Tac2Kh: bac_tac = val(text$(sbac_tac)) : bac_kh = bac_tac / 1.7848 off_change sbac_kh:text sbac_kh,str$(int(bac_kh*100)/100):on_change sbac_kh,CtrlSaisie return
' -------------------------------- ' conversion Celsius / Fahrenheit ' -------------------------------- Celsius2Fahrenheit: bac_celsius = val(text$(sbac_celsius)) bac_fahrenheit = 32 + (9 * bac_celsius) / 5 bac_kelvin = bac_celsius + 273.15 : ' 1 °C = 273.15 kelvin off_change sbac_fahrenheit : off_change sbac_kelvin text sbac_fahrenheit,str$(int(bac_fahrenheit*10)/10) text sbac_kelvin,str$(int(bac_kelvin*100)/100) on_change sbac_fahrenheit, CtrlSaisie : on_change sbac_kelvin, CtrlSaisie return
' -------------------------------- ' conversion Fahrenheit / Celsius ' -------------------------------- Fahrenheit2Celcius: bac_fahrenheit = val(text$(sbac_fahrenheit)) bac_celsius = (bac_fahrenheit - 32) * 5 / 9 bac_kelvin = bac_celsius + 273.15 off_change sbac_celsius: off_change sbac_kelvin text sbac_celsius,str$(int(bac_celsius*10)/10) text sbac_kelvin,str$(int(bac_kelvin*100)/100) on_change sbac_celsius, CtrlSaisie : on_change sbac_kelvin, CtrlSaisie return ' -------------------------------- ' conversion Kelvin ' -------------------------------- Kelvin2Celsius: bac_kelvin = val(text$(sbac_kelvin)) bac_celsius = bac_kelvin - 273.15 bac_fahrenheit = 32 + (9 * bac_celsius) / 5 off_change sbac_celsius:off_change sbac_fahrenheit text sbac_celsius,str$(int(bac_celsius*10)/10) text sbac_fahrenheit,str$(int(bac_fahrenheit*10)/10) on_change sbac_celsius, CtrlSaisie : on_change sbac_fahrenheit, CtrlSaisie return
ActiveKeyTimer: TIMER_OFF KeyboardTimer% TIMER_INTERVAL KeyboardTimer%, 1200 : ' réarme la bdt du timer TIMER_ON KeyboardTimer% RETURN
KeyboardTimer: TIMER_OFF KeyboardTimer% : ' désactive GOSUB Calc RETURN
EDIT: Rectification, tu as peut être raison cosmos ! mais je ne comprend pas pourquoi cela ne plante pas en fin de boucle... | |
| | | Invité Invité
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 23:27 | |
| Cela me donne raison. Par on change, et les timer, en suivant le code, tout n'est pas défini. J'ai rajouté des messages, et on voit au départ que dans la boucle for/next il prend la valeur de value qui est 100, du fait de mettre on_change,il y a traitement du code avec le timer, et on arrive à la ligne : - Code:
-
bac_hauteur = val(text$(sbac_hauteur)) qui a la valeur 102, valeur pas encore lu dans la boucle for/next. - Code:
-
hide 0
LABEL KeyboardTimer, ActiveKeyTimer,CtrlSaisie
LABEL Calc LABEL Celsius2Fahrenheit,Kelvin2Celsius,Fahrenheit2Celcius LABEL Gh2Th,Th2Gh,Tac2Kh,Kh2Tac
' timer pour traitement de saisie des champs DIM KeyboardTimer% : KeyboardTimer% = 1000 TIMER KeyboardTimer% : TIMER_OFF KeyboardTimer% : TIMER_INTERVAL KeyboardTimer%,3000 ON_TIMER KeyboardTimer%,KeyboardTimer
' -------------------------------------------- ' Variables de calcul ' -------------------------------------------- dim bac_hauteur,bac_longueur,bac_profondeur,bac_epaisseur dim bac_volume,bac_poids dim bac_celsius,bac_kelvin,bac_fahrenheit dim bac_th,bac_gh,bac_kh,bac_tac
dim baci_hauteur,baci_longueur,baci_profondeur dim baci_cm,baci_volume
' -------------------------------------------- ' Définition du formulaire de saisie ' --------------------------------------------
dim bCalcul
' construction des champs dim i,j dim nb_cont,id_cont: nb_cont=5 dim nb_ele dim txt$,value,value2
data 1,"Dimensions",10,10,4 : ' n° Container, left, top, nb d'element dim sbac_longueur : sbac_longueur = 100 : data "Longueur (m) :",sbac_longueur,1.5,"" dim sbac_hauteur : sbac_hauteur = 102 : data "Hauteur (m) :",sbac_hauteur,0.5,"" dim sbac_profondeur: sbac_profondeur= 104 : data "Profondeur (m) :",sbac_profondeur,0.5,"" dim sbac_epaisseur : sbac_epaisseur = 106 : data "Epaisseur du verre (mm) :",sbac_epaisseur,8,"Note:la densité pour du verre sodo-calcique de qualité courante est de 2,53"
data 2,"Volumes",left(1)+width(1)+10,10,4 dim sbac_volume : sbac_volume = 108 : data "Volume brut (litre) :",sbac_volume,0,"" dim sbaci_volume : sbaci_volume = 110 : data "Volume interne (litre):",sbaci_volume,0,"" dim sbac_poids : sbac_poids = 112 : data "Poids à vide (kg):",sbac_poids,0,"le poids ne tient pas compte du poids des renforts, des entretoises, raidisseurs et verre de couverture" dim sbaci_cm : sbaci_cm = 114 : data "Nb litres/cm:",sbaci_cm,0,""
data 3,"Temperatures",10,top(1)+height(1)+10,3 dim sbac_celsius : sbac_celsius = 116 : data "Celsius :",sbac_celsius,26,"" dim sbac_fahrenheit: sbac_fahrenheit= 118 : data "Fahrenheit:",sbac_fahrenheit,78.8,"" dim sbac_kelvin : sbac_kelvin = 120 : data "Kelvin :",sbac_kelvin,299.15,""
data 4,"Dureté carbonaté (temporaire)",left(3)+width(3)+10,top(3),2 dim sbac_tac : sbac_tac = 122 : data "T.A.C (°f):",sbac_tac,10,"Titre Alcalimétrique" dim sbac_kh : sbac_kh = 124 : data "KH (°d):",sbac_kh,10,"Karbonat Härte"
data 5,"Dureté totale",10,top(3)+height(3)+10,2 dim sbac_gh : sbac_gh = 126 : data "GH (°d)",sbac_gh,10,"Gesamthärte" dim sbac_th : sbac_th = 128 : data "TH (°f)",sbac_th,10,"titre hydrotimétrique"
for i = 1 to nb_cont
read id_cont: container id_cont : read txt$: caption id_cont,txt$ read value: left id_cont,value : read value: top id_cont,value read nb_ele : height id_cont,((nb_ele+1)*20)+10 : width id_cont,200 for j=1 to nb_ele read txt$ : read value :message value ' -- edit value : left value, 118+10 : top value,(20*j):width value, 50: parent value,id_cont on_change value,CtrlSaisie : ' <--- ici problème ' --
alpha value+1 : caption value+1, txt$ : left value+1, 10 : top value+1,top(value)+5 : parent value+1, id_cont ' -- read value2: text value, str$(value2) if (value2=0) color value,200,255,200 inactive value end_if read txt$:hint value,txt$ ' on_change value,CtrlSaisie : ' <--- ici pas de problème next j next i
gosub Calc show 0 END
' =============================================================================================== ' =============================================================================================== ' ---------------------------------------------------------------- ' Edition ' ---------------------------------------------------------------- CtrlSaisie: if numeric(text$(number_change)) = 1 if number_change = sbac_celsius then bCalcul=1 if number_change = sbac_kelvin then bCalcul=2 if number_change = sbac_fahrenheit then bCalcul=3 if number_change = sbac_th then bCalcul=4 if number_change = sbac_gh then bCalcul=5 if number_change = sbac_kh then bCalcul=6 if number_change = sbac_tac then bCalcul=7
gosub ActiveKeyTimer end_if return
' Calculs divers Calc: bac_longueur = val(text$(sbac_longueur)) message "116: "+str$(sbac_hauteur) bac_hauteur = val(text$(sbac_hauteur)) bac_profondeur = val(text$(sbac_profondeur)) bac_epaisseur = val(text$(sbac_epaisseur))/1000 ' dimensions internes baci_longueur = bac_longueur - ( 2 * bac_epaisseur) baci_hauteur = bac_hauteur - bac_epaisseur baci_profondeur = bac_profondeur - ( 2 * bac_epaisseur) ' calcul du volume brut bac_volume = bac_longueur * bac_hauteur * bac_profondeur * 1000 text sbac_volume,str$(int(bac_volume*10)/10) ' calcul du volume interne baci_volume =(baci_longueur * baci_hauteur * baci_profondeur) * 1000 text sbaci_volume,str$(int(baci_volume*10)/10) ' calcul du volume des vitres (pour détermination du poids du bac à vide : ' la densité pour du verre sodo-calcique de qualité courante est de 2,53. ' le poids ne tient pas compte du poids des renforts, des entretoises, raidisseurs et verre de couverture bac_poids = (bac_volume - baci_volume) * 2.53 text sbac_poids,str$(int(bac_poids*100)/100) ' calcul du nombre de litre / cm baci_cm = baci_longueur * baci_profondeur * 10 text sbaci_cm, str$(int(baci_cm*100)/100) select bCalcul case 1: gosub Celsius2Fahrenheit : ' celsius case 2: gosub Kelvin2Celsius : ' kelvin case 3: gosub Fahrenheit2Celcius : ' fahrenheit case 4: gosub Th2Gh : ' TH -> GH case 5: gosub Gh2Th : ' GH -> TH case 6: gosub Kh2Tac : ' KH -> TAC case 7: gosub Tac2Kh : ' TAC -> KH end_select bCalcul = 0
return ' -------------------------------- ' conversion dureté ' -------------------------------- Th2Gh: bac_th =val(text$(sbac_th)) : bac_gh = 0.5603 * bac_th off_change sbac_gh: text sbac_gh,str$(int(bac_gh*100)/100): on_change sbac_gh,CtrlSaisie return Gh2Th: bac_gh = val(text$(sbac_gh)) : bac_th = bac_gh / 0.5603 off_change sbac_th : text sbac_th,str$(int(bac_th*100)/100): on_change sbac_th,CtrlSaisie return Kh2Tac: bac_kh = val(text$(sbac_kh)): bac_tac = bac_kh * 1.7848 off_change sbac_tac:text sbac_tac,str$(int(bac_tac*100)/100):on_change sbac_tac,CtrlSaisie return Tac2Kh: bac_tac = val(text$(sbac_tac)) : bac_kh = bac_tac / 1.7848 off_change sbac_kh:text sbac_kh,str$(int(bac_kh*100)/100):on_change sbac_kh,CtrlSaisie return
' -------------------------------- ' conversion Celsius / Fahrenheit ' -------------------------------- Celsius2Fahrenheit: bac_celsius = val(text$(sbac_celsius)) bac_fahrenheit = 32 + (9 * bac_celsius) / 5 bac_kelvin = bac_celsius + 273.15 : ' 1 °C = 273.15 kelvin off_change sbac_fahrenheit : off_change sbac_kelvin text sbac_fahrenheit,str$(int(bac_fahrenheit*10)/10) text sbac_kelvin,str$(int(bac_kelvin*100)/100) on_change sbac_fahrenheit, CtrlSaisie : on_change sbac_kelvin, CtrlSaisie return
' -------------------------------- ' conversion Fahrenheit / Celsius ' -------------------------------- Fahrenheit2Celcius: bac_fahrenheit = val(text$(sbac_fahrenheit)) bac_celsius = (bac_fahrenheit - 32) * 5 / 9 bac_kelvin = bac_celsius + 273.15 off_change sbac_celsius: off_change sbac_kelvin text sbac_celsius,str$(int(bac_celsius*10)/10) text sbac_kelvin,str$(int(bac_kelvin*100)/100) on_change sbac_celsius, CtrlSaisie : on_change sbac_kelvin, CtrlSaisie return ' -------------------------------- ' conversion Kelvin ' -------------------------------- Kelvin2Celsius: bac_kelvin = val(text$(sbac_kelvin)) bac_celsius = bac_kelvin - 273.15 bac_fahrenheit = 32 + (9 * bac_celsius) / 5 off_change sbac_celsius:off_change sbac_fahrenheit text sbac_celsius,str$(int(bac_celsius*10)/10) text sbac_fahrenheit,str$(int(bac_fahrenheit*10)/10) on_change sbac_celsius, CtrlSaisie : on_change sbac_fahrenheit, CtrlSaisie return
ActiveKeyTimer: TIMER_OFF KeyboardTimer% TIMER_INTERVAL KeyboardTimer%, 1200 : ' réarme la bdt du timer TIMER_ON KeyboardTimer% RETURN
KeyboardTimer: TIMER_OFF KeyboardTimer% : ' désactive GOSUB Calc RETURN
il faut éviter de mettre on_change dans un listing, tant que tout n'est pas défini. |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 23:34 | |
| Tu as raison et le fait de mettre le on_change après le TEXT ne pose plus de pb... merci cosmos, Je suis encore un peu rouillé... | |
| | | Invité Invité
| Sujet: Re: [Résolu] Un truc assez bizarre Dim 16 Oct 2011 - 23:44 | |
| Oui c'est pas évident avec les instructions qu'on croit mettre pour faire le code, et qui s'active alors que tout n'est pas défini. Crois moi, je suis passé par là, ce qui me permet de te répondre.
Je me fais pas de soucis pour toi, tu es expert. Moi j'apprend comme je peux, en faisant plein d'erreurs et en cherchant pourquoi.
Ce qui serait bien je pense, c'est d'avoir une instruction d'activation pour les objets qui fonctionnent en arrière plan. Lorsqu'on arrive au END, si les instructions TIMER_OFF et OFF_CHANGE ne sont pas précisés, ces objets s'activent. Dans le cas où le END n'existe pas, le code d'activation permettrait la mise en route de ceux-ci. Là votre avis compte aussi.
|
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 0:04 | |
| Pourquoi pas ? ou une fonction d'ordre plus générale: par exemple dans mon prog j'ai ceci: - Code:
-
Th2Gh: bac_th =val(text$(sbac_th)) : bac_gh = 0.5603 * bac_th off_change sbac_gh text sbac_gh,str$(int(bac_gh*100)/100) on_change sbac_gh,CtrlSaisie return
Je suis obligé de supprimer le on_change, faire ma modif de l'objet et ensuite redéclarer le on_change. encore dans ce cas, je ne modifie qu'un seul objet, si je devais en modifier 10 il faudrait faire 10 fois la manip... Des fonctions plus globales genre: change_off_all : stopperai provisoirement TOUS le mécanisme d'évènement change_on_all : rétablirai les évènements. | |
| | | Invité Invité
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 0:37 | |
| Je suis d'accord sur l'idée, mais pas comme tu le dis.
Bien souvent j'ai plusieurs timer qui fonctionne, et des on_change. Mais voila, je ne les fait pas marcher en même temps. Ce qu'il faut c'est de bloquer tous les objets, et ensuite rétablir les objets timer et on_change qui étaient opérationnel avant. Là je crois que Jack ne suivra pas.
Le plus simple en utilisant pas le bon mot clé, serait d'avoir off_objet 10,11,15 et on_objet 10,11,15 selon le programme. Et à partir de là tu vas me dire, ça revient au même que mettre off_timer... on_change ..., c'est simplement plus court.
Dans mes programmes, j'utilise rarement timer_off_all, sauf dans une procédure d'erreur. |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 0:51 | |
| Je suis d'accord avec le principe, mais je pense que ça pourrait être sympa d'avoir des déclaration d'objets liés dans ce cas pour s'y retrouver plus facilement
genre: DIM ... LABEL ... LIST_OBJET Bouttons_Fenetre:10,11,15 => Bouttons_Fenetre est un groupement logique d'objets (bouttons, pictures, timers, ...) ... OFF_OBJET Bouttons_Fenetre ... ON_OBJET Bouttons_Fenetre ...
| |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 5:14 | |
| @Jicehel : le LIST_OBJET correspond en gros à un parent... Donc en résumé, pour simplifier l'écriture de cosmos et en tenant compte de Jicehel : OFF_OBJECT Parent ON_OBJECT ParentParent pouvant être un FORM, un CONTAINER ou un CONTAINER_OPTION Qu'en pensez-vous ? PS: Je démarre fort, à peine de retour que je propose déjà un mot-clé supplémentaire. Jack va me maudire ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 7:54 | |
| Bonne idée | |
| | | Invité Invité
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 8:53 | |
| Bonjour, Bon je crois que je vais déplaire à quelques-uns. Jack a une liste extrêmement rempli de mots-clés qu'on lui demande. Ensuite, sa liste déjà qu'il nous a donné pour nous satisfaire est bien rempli et ce ne sera pas simple pour qu'il soit dans les délais donné. De plus il y a Toonic qui je crois lui tient à coeur avec ses différentes versions. Je crois même que Toonic est plus important pour lui qui apparemment est porté sur les jeux. Surtout je ne dis pas que Panoramic est laissé de côté, je pense même si il y aurait un gout d'inachevé pour un langage, cela s'apparente pour soi-même à un échec.
Panoramic est un langage de haut niveau, et je trouve normal qu'on ajoute des instructions pour pouvoir coder des choses qu'on arrive pas à faire, car il y a une impossibilité avec ce qu'on possède. Je trouve aussi normal que dans le cas d'un programme que l'on fait, une instruction tout bête remplace tout un bouclage d'instruction qui ralentie le processus, soit demandé.
Mais doit-on aussi demander qu'une instruction fasse le programme? Je sais j’exagère dans la formulation. Lorsque je dis que ce serait bien qu'on ait une instruction pour lancer les évènements qui se lance toutes seules à leur écriture, c'est que je pense qu'il y a erreur sur le concept. Cela vient d'arriver à Nardo, qui innocemment fait son codage, en ne voyant pas qu'une fois posé, cette instruction devient opérationnel. Il n'est pas le seul, moi-même je me suis fait avoir avec l'instruction ON_CHANGE, donc je sais de quoi je parle.
ON_CHANGE est une instruction à évènement, et TIMER est un objet à évènement. Il faudrait qu'ils restent inactif tant que le END n'est pas rencontré car dans le cas de Panoramic, c'est cette instruction qui lance les Evènements de Panoramic. Et dans le cas nécessaire ou END n'existe pas, une instruction de remplacement me semble nécessaire.
Je fais souvent de grand programme, et j'essaye de mettre les on_change et timer à la fin. Le problème est que je me demande si le programme va, à la lecture de celui-ci aller jusqu'au bout pour lire tous les branchements, où être détourner avant. Cela m'est déjà arrivé, et j'ai du essayer plusieurs combinaisons pour obtenir la bonne. Donc il y a bien un problème et je ne peux parler de bug, il y a une erreur de conception à ce niveau.
Je pense aussi que les instructions qu'on demande doivent être des instructions qui nous fassent avancer. Demander une instruction simplement pour avoir un ou deux mots en moins à écrire, c'est du superflu. Si je suis resté sur Panoramic, alors que les problèmes je les rencontre continuellement, et parfois cela me met "en boule", c'est l'idée génial de la méthode qu'a trouvé Jack pour la conception du basic. Je sais que certains arrivant ici après avoir programmé avec un autre concept de basic, aimeraient revoir certaines de leurs instructions se retrouver dans Panoramic. Je ne rentre pas dans les détails sur ce qui a été demandé.
J’arrête ici mon baratin, cela devient long. Merci de me lire. |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 9:42 | |
| Bonjour cosmos, Perso tes remarques sont les bienvenues... On ne remet pas en cause le concept: C'est à nous de faire attention à ce que l'on écrit avant l'instruction END. Là on est tous d'accord ! Je me suis vautré, ok Pourquoi je parle d'une instruction ON_OBJECT/ OFF_OBJECT, ce n'est pas par fainéantise (quoique.. un programmeur cherchera à écrire le moins de code possible pour arriver à ses fins... ) Mais là dans cet exemple (voir ce qu'il y a d'écrit en dessous du code) ce n'est pas le cas : - Code:
-
LABEL Traitement1,Traitement2,Traitement3,Traitement4,Traitement5
EDIT 1:TOP 1,20: on_change 1,Traitement1 EDIT 2:TOP 2,40: on_change 2,Traitement2 EDIT 3:TOP 3,60: on_change 3,Traitement3 EDIT 4:TOP 4,80: on_change 4,Traitement4 EDIT 5:TOP 5,100: on_change 5,Traitement5
END
Traitement1: ' je modifie les autres champs : off_change 2 off_change 3 off_change 4 off_change 5 text 2,"Modif de 1" text 3,"Modif de 1" text 4,"Modif de 1" text 5,"Modif de 1" on_change 2,Traitement2 on_change 3,Traitement3 on_change 4,Traitement4 on_change 5,Traitement5 return
Traitement2: ... return Traitement3: ... return
Traitement4: ... return
Traitement5: ... return Dans ce cas, je me suis limité à 5 champs editables: Je suis bien gentil dans cet exemple... Mais imagine une bonne applic avec plusieurs formulaires qui contiennent chacun une dizaine de champs éditables. Et je ne parle pas des programmes qui font des includes d'autres fichiers qui contiennent à leur tour d'autres formulaires, etc... Si tu dois dans chaque procédure de traitements, stopper de manière individuelle tous les champ, faire tes modifs et réactiver tous les évènements que tu as stoppé juste avant, cela devient vite une usine à gaz pour ne pas dire un truc insoluble... | |
| | | Invité Invité
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 12:44 | |
| Je n'ai jamais fait allusion à ON_OBJECT..., je n'ai pas pris le temps d'y penser. Il était déjà tard, et j'avais autre chose à faire. Je parlais de façon général sur les diverses demandes. Je me suis souvent posé la question: et si moi aussi je faisais un langage, et même si je suis loin d'être compétent dans ce domaine, je me suis demandé comment je ferais. Il serait intéressant dans le cas d'un exercice de style, de vouloir en Panoramic faire un nouveau langage, qui n'aurait de sens de comprendre. Dans les différents problèmes posés pour un langage, il y a la création des objets, la gestion des variables, créations, etc..., mais il y a aussi la gestion des évènements. Et là cela me parait une paire de manches, si vous me comprenez. Tout au long du langage savoir ce qui est en cours, la différente gestion des évènements avec les interruptions... Aussi est-ce que certaines instructions que nous demandons sont compatibles avec Panoramic? C'est question est apparemment primordiale vu que Jack dit qu'il est obligé de casser Panoramic pour pouvoir faire des instructions de fonction et autre. Donc moi je limite mes demandes à ce que je crois possible. Empêcher un timer ou on_change de fonctionner avant le END, cela me parait faisable, et une instruction pour les démarrer aussi. Quant au reste ça me dépasse sans au moins prendre le temps de la réflexion. Y s'y on se faisait un langage, juste pour voir? |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 14:04 | |
| C'est l'interet des forums, pouvoir exposer ces idées et contribuer à faire évoluer un langage (puisque l'on a quelqu'un qui est occupé, mais qui écoute). Si la demande est réaliste et va dans le sens ou Jack veut faire évoluer son langage, il le fait. Après, il ne faut pas se prendre la tête, Jack les implémente quand il le veut et que cela est possible et cohérent avec son projet du moment. Par exemple, les fonctions et procédures sont demandées depuis longtemps, mais cela ne correspondait pas à l'idée que Jack avait de là où il voulait conduire son langage ou cela semblait difficile à mettre, mais au fil du temps à priori, il a évolué fait évoluer son point de vu sur le sujet ou il a vu un moyen de le mettre en place et il a décidé de l'ajouter. Je pense qu'il ne faut pas brider son imagination ou ses demandes. Nous avons la chance d'avoir un arbitre pour le faire et un lieu pour en discuter | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 14:10 | |
| @cosmos : Créer un langage de programmation n'est pas quelque chose d'aisé. Cependant la discution de ce sujet a dérivé tout naturellement vers cette idée d'ajout d'une fonction permettant de stopper les évènement liés à un "container". Ce n'est pas une demande, car j'aurais rajouter dans ce cas, un nouveau sujet dans "Demande d'amélioration". Actuellement j'arrive à m'en passer... Cependant, je ne pense pas que la mise en place d'une telle fonction soit quelque chose de compliqué, je me trompe peut être, mais vu que la notion de parent existe déjà dans le noyau de Panoramic... Maintenant, Jack lira un jour ou l'autre ce post et s'il estime que cela apporte un plus au langage, ce sera lui qui décidera au final (et encore heureux, car c'est son bébé !) si cela vaut le coup de la faire ou non... c'est juste une idée en l'air... Quand aux passages de paramètres dans une procédure ou un appel de fonction, c'est vraiment quelque chose de compliqué quand cela n'a pas été prévu dès le départ... car cela oblige de remanier une grande partie du code existant et d'aborder le noyau sous un autre angle... A un moment donné, Klaus, moi et quelques autres nous avions harcelé Jack concernant ce sujet de passage de paramètres. On a même déliré un petit moment sur la possibilité de simuler ce passage (tu en faisais partie il me semble ), mais je pense qu'à aucun moment nous avions été dupes sur la difficulté de réaliser une telle chose... et je me garderai bien de dire que c'est "peanuts" à réaliser !!! | |
| | | Invité Invité
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 14:49 | |
| Excusez ma question. J'allais fermé, lorsque je vois au dessus de la fenêtre ceci: (dans la feuille de Panoramic) Detection V:2, loaded:10218.73.247, site:7124, url:Bho-Speedbit3.
Avez-vous cela, quelqu'un a une idée? |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 14:56 | |
| Je serai toi: je ferai une mise à jour de l'anti-virus puis je redemarerai le PC en mode sans echec sans connection réseau puis je lancerai une bonne analyse... | |
| | | Invité Invité
| Sujet: Re: [Résolu] Un truc assez bizarre Lun 17 Oct 2011 - 19:50 | |
| Merci, c'est fait. 2heures de scan @+ |
| | | Contenu sponsorisé
| Sujet: Re: [Résolu] Un truc assez bizarre | |
| |
| | | | [Résolu] Un truc assez bizarre | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |