Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS DELPHI F.A.Q DELPHI TUTORIELS DELPHI LIVRES COMPOSANTS SOURCES DEFI TELECHARGEZ DELPHI TV
Nono40.developpez.com
Le petit coin du web de Nono40
SOURCES ARTICLES NONOVISU ACCUEIL NOUVELLES
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 : miroir 1 , miroir 2 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 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.

Responsables bénévoles de la rubrique Delphi : Nono40 et Pedro - Contacter par EMail :
Vos questions techniques : forum d'entraide Delphi - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.