IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Nono40.developpez.com
Le petit coin du web de Nono40
SOURCES TESTS DELPHI WIN32 AUTOMATISMES DELPHI .NET QUICK-REPORT
Retour à l'accueil
86 - APPELER UNE MÉTHODE VIA SON NOM

PRÉSENTATION : Appeler un méthode d'objet via son nom à l'exécution
ZIP : Téléchargez le zip APERÇUS :

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 œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Bruno Guérangé. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.