exception que je pige pas :( - Delphi/Pascal - Programmation
Marsh Posté le 29-07-2003 à 18:49:29
le bug a lieu avant...trace ton code pas à pas et tu verras le moment "magique"
Marsh Posté le 29-07-2003 à 19:48:48
je poste le code parceque la je bloke meme avant je voit pas la merde ... et pour un pas pas , le blem c que ca marche pendant les premiere boucle que j'ai mis entre 2 linge sur le code ci dessous !
help
Code :
|
Marsh Posté le 30-07-2003 à 10:49:03
Tu as quoi dans lememo.Name quand tu fais ça ?
case strtoint(copy(lememo.Name,length(lememo.Name)-1,1)) of
Marsh Posté le 30-07-2003 à 11:01:14
Autres remarques gratuites sur ton code :
déclarer CHAINE en numérique c'est pas le top (idem pour les ch qui font penser à.....CHaine)
déclarer un boolean qui s'appelle OUI n'est pas mieux...
if (checkbox3.Checked=true) and (ch3>=mini) then oui:=true;
peut être codé : (même si ça ne s'applique pas ici car 3 tests en séquence, chacun pouvant modifier indépendamment oui)
oui:=(checkbox3.Checked=true) and (ch3>=mini);
if oui=true then memo1.Lines.Add(a);
devient :
if oui then memo1.Lines.Add(a);
A la limite tu peux ainsi de passer de ton init à false de oui
Marsh Posté le 30-07-2003 à 11:43:59
quand je fait ca :
case strtoint(copy(lememo.Name,length(lememo.Name)-1,1)) of
jai ca ! (Ca finit toujours pas un chiffre lundi1 , mardi1 ....
calcul(form1.Lundi1,a,chaine);
calcul(form1.Lundi2,a,chaine);
calcul(form1.Lundi3,a,chaine);
calcul(form1.Mardi1,a,chaine);
calcul(form1.Mardi2,a,chaine);
calcul(form1.Mardi3,a,chaine);
calcul(form1.Mercredi1,a,chaine);
calcul(form1.Mercredi2,a,chaine);
calcul(form1.Mercredi3,a,chaine);
calcul(form1.Jeudi1,a,chaine);
calcul(form1.Jeudi2,a,chaine);
calcul(form1.Jeudi3,a,chaine);
calcul(form1.Vendredi1,a,chaine);
calcul(form1.Vendredi2,a,chaine);
calcul(form1.Vendredi3,a,chaine);
calcul(form1.Samedi1,a,chaine);
calcul(form1.Samedi2,a,chaine);
calcul(form1.Samedi3,a,chaine);
pour les remarque gratuites , merci , mais ca ne resoud pas mon probleme !
Marsh Posté le 30-07-2003 à 13:21:59
Justement, elles sont gratos !
Ca aussi c'est gratos :
LUNDI1
longueur = 6
longueur - 1 = 5
et donc COPY('LUNDI1',5,1) renvoie le i CQFD !
Tu peux dire merci, même si on t'apprend qq chose.
....prochain pilou !
Marsh Posté le 30-07-2003 à 19:00:46
jai pas compris la , ca marcherai pour lundi mais pas pour vendredi qui comprend plus de lettre !
Marsh Posté le 30-07-2003 à 21:34:38
Non, la démo en mode "forum" vaut pour lundi
mais c'est pareil pour vendredi
vendredi1 => lg=9 et lg-1=8
COPY('vendredi1',8,1) renvoie i
T'as pas une fonction RIGHT sous la main ?
Tiens, gratos encore:
Function _Right(ch_entree:string;longueur:byte):string;
var i:integer;
Begin
i:=length(ch_entree);
if longueur>i then _right:=''
else _right:=copy(ch_entree,i-longueur+1,longueur);
End;
Marsh Posté le 31-08-2003 à 23:00:01
voila , je rentre apres 1 mois de vac et jai compris ...
ca fait du bien les vacs , en tous cas , merci beaucoup !
en fait , je fesais ca car je pensais que copy commencais appartir du caractere 0 et non du 1 , c pour ca que je fesais lenght -1
Marsh Posté le 29-07-2003 à 18:01:26
bon deja , voila lexception :
ensuite quand je fait ok , elle me renvoit sur une procedure qui a deja ete executee plusieurs fois sans planté :
calcul(form1.Vendredi3,a,chaine);
qui est declaree ainsi :
procedure calcul(lememo:Tmemo;a:string;chaine:byte);
mais le probleme c ke jai pas de variable i dans cette procedure :
voila la procedure appellée :