Si j'ai:
Procedure Calcul1;
Procedure Calcul2;
Procedure Calcul3;
Comment écrire un appel à une de ces procedures en fonction d'une variable ?
Si j'ai:
Procedure Calcul1;
Procedure Calcul2;
Procedure Calcul3;
Comment écrire un appel à une de ces procedures en fonction d'une variable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 var vaiable: integer; begin case variable of 1: Calcul1; 2: Calcul2; 3: Calcul3; end; end;
Ben c'est la solution que j'utilise, mais je pensais qu'il existait une solution sur une seul ligne, du style:
Calcul(I); <- marche pô
Tu peux aussi créer un tableau de fonctions. Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Function Calcul1(A,b:Integer):Integer; Begin Result:=a+b; End; Function Calcul2(A,b:Integer):Integer; Begin Result:=a-b; End; Function Calcul3(A,b:Integer):Integer; Begin Result:=a*b; End; Type TMaProc=Function(A,b:Integer):Integer; Const Tab:Array[1..3]Of TMaProc=(Calcul1,Calcul2,Calcul3); procedure TForm1.Button1Click(Sender: TObject); Var r:Integer; begin // Exemple d'appel r := Tab[SpinEdit3.Value](SpinEdit1.Value,SpinEdit2.Value) ShowMessage(IntToStr(r)); end;
Partager