 |
|
 |
|
 |
86 - APPELER UNE MÉTHODE VIA SON NOM
|
|
|
|
PRÉSENTATION :
Appeler un méthode d'objet via son nom à l'exécution
NOTES :
Cette méthode permet d'appeler que des méthodes publiées ( section published ), mais elle est trés pratique pour changer le traitement d'un programme en fonction des choix utilisateur.
CODE :
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Spin;
Type
TForm1 = Class(TForm)
A: TSpinEdit;
Label1: TLabel;
B: TSpinEdit;
Label2: TLabel;
OP: TRadioGroup;
Label3: TLabel;
Resultat: TLabel;
Button1: TButton;
Procedure Button1Click(Sender: TObject);
Private
{ Déclarations privées }
Public
{ Déclarations publiques }
// Le mot clef Published doit être ajouté manuellement
Published
{ Déclarations publiques }
// Les méthodes doivent absolument être publiées
Function Additionner(x, y: Integer): Integer;
Function Soustraire(x, y: Integer): Integer;
Function Multiplier(x, y: Integer): Integer;
End;
Var
Form1: TForm1;
Implementation
{$R *.dfm}
Function TForm1.Additionner(x, y: Integer): Integer;
Begin
Result:=x+y;
End;
Function TForm1.Soustraire(x, y: Integer): Integer;
Begin
Result:=x-y;
End;
Function TForm1.Multiplier(x, y: Integer): Integer;
Begin
Result:=x*y;
End;
Procedure TForm1.Button1Click(Sender: TObject);
Var Proc:Function(x,y:Integer):Integer Of Object;
Begin
// La méthode est cherchée par son nom
@Proc:=MethodAddress(OP.Items[OP.ItemIndex]);
If @Proc<>Nil Then
Begin
// Si l'adresse est trouvée elle est appelée normalement
Resultat.Caption := (IntToStr(Proc(A.Value,B.Value)));
End Else
Begin
// Sinon erreur
ShowMessage('Méthode non trouvée !');
End;
End;
end.
|
| |
 |
|
 |
Les sources présentées sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©
2003 Bruno Guérangé. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts.
Cette page est déposée à la
SACD.
|