Pour ce qui est de la différence entre procédure et function je ne comprends toujours pas. Tu dis toi même qu'un function est une procédure qui renvoi un résultat mais une procédure peut aussi renvoyer un résultat non ?
Si on a par exemple ça :
1 2 3 4 5 6
| procedure TForm1.Button1Click(Sender: TObject);
begin
valeurun:=strtoint(edit1.text);
valeurdeux:=strtoint(edit2.text);
decomptage:=valeurun-valeurdeux;
end; |
Je me débrouille en glanant des infos au fur et à mesure de mes besoins, avec des amis plus qualifiés, ce forum, des bouts de code récupérés sur code source et je réussi à faire quelques petits trucs.
Le principe si j'ai bien compris c'est que la ligne
iMax := max(max(max(max(PP, ARPO), CHEM), TRIPU), SYMP);
place dans la variable iMax le nom de la variable la plus grande ?
Ensuite les lignes IF regardent si iMax est égal a tel ou tel nom de variable.
Les lignes IF mettent dans la variable result le nom de la variable la plus grande.
Il y a plusieurs choses que je ne comprends pas.
1/ Pourquoi ne peut on pas faire ça sous la forme :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| procedure TForm1.Button1Click(Sender: TObject);
Var
iMax: integer;
Begin
//Trouve la valeur Maximal
iMax := max(max(max(max(PP, ARPO), CHEM), TRIPU), SYMP);
//Comparaison dans un ordre précis.
//si 2 valeurs sont = c'est la dernière qui gagne
If SYMP = iMax Then result := 'SYMP';
If TRIPU = iMax Then result := 'TRIPU';
If CHEM = iMax Then result := 'CHEM';
If ARPO = iMax Then result := 'ARPO';
If PP = iMax Then result := 'PP';
End; |
2/ Comment ça marche quand il y a des execos.
Si iMax est bien une variable il ne peut y avoir dedans q'une seule valeure non ? et comment être sur que c'est celle que je veux s'il y a des execos ?
Et puis aussi pourquoi y a t'il besoin des IF ?
Si le nom de la variable la plus haute est direct dans iMax pourquoi replacer le nom de cette variable dans result ? Pourquoi ne pas directement exploiter iMax ?
Partager