Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Appel de Fonction de façon "dynamique" [ Archives / J'AI BESOIN D'AIDE !!!! :O ] (cerber943)

vendredi 29 octobre 2004 à 14:34:09 | Appel de Fonction de façon "dynamique"

cerber943

Bonjour,

Je souhaite savoir s'il est possible d'appeler une fonction en ayant son nom dans une variable sans pour autant faire une sorte d'interprétteur.

En gros, je souhaiterais être à même de créer une procédure :
procedure appel_fonction(nom_fonction : String);
mais je ne souhaite pas effectuer de comparaison du contenu de nom_fonction pour effectuer le traitement associé.

Je ne sais pas si j'ai été clair...
J'espère en tout cas que quelqu'un pourra me répondre/comprendre et me donner une piste à suivre :)

merci d'avance

vendredi 29 octobre 2004 à 14:40:24 | Re : Appel de Fonction de façon "dynamique"

jinh68

Membre Club
En fait je comprends ce que tu veux faire, mais ca me semble compliqué, le seul moment ou jai vu qu'on pouvait identifier une fonction par un nom( PChar) c'était quand tu appelles une fonction d'une dll à l'aide de GetProcAddress...

Mais doit ya avoir un moyen, je vais regarder ça..

Dans quel but précis veux tu faire ça?



j!nH

vendredi 29 octobre 2004 à 14:42:07 | Re : Appel de Fonction de façon "dynamique"

JulioDelphi

Membre Club Administrateur CodeS-SourceS
hello,

explique moi l'interet de cette procedure ?
pourquoi ne pas simplement lancer tes fonctions ?

tu peux par exemple faire :
procedure appel_fonction(nom_fonction : String);
begin
if nom_fonction = Fonction1 then Fonction1 else
if nom_fonction = Fonction2 then Fonction2 else
if nom_fonction = Fonction3 then Fonction3;
...
end;


ça te va ? c ce que tu cherches ?

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !

-------------------------------------------
[ Lien ] : mon site refait ! Delphi power !

vendredi 29 octobre 2004 à 14:52:45 | Re : Appel de Fonction de façon "dynamique"

jinh68

Membre Club
Non à mon avis pas, il a bien précisé qu'il ne voulait pas faire de comparaison :-).

j!nH

vendredi 29 octobre 2004 à 15:19:14 | Re : Appel de Fonction de façon "dynamique"

JulioDelphi

Membre Club Administrateur CodeS-SourceS
oups dsl ! j'ai été trop vite en besogne :/

bon et bien alors je ne connais pas d'autre soluce pour le moment ...

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !

-------------------------------------------
[ Lien ] : mon site refait ! Delphi power !

vendredi 29 octobre 2004 à 15:40:01 | Re : Appel de Fonction de façon "dynamique"

leveugle

Salut,

je ne comprends pas (non plus) bien pourquoi tu ne veux pas faire de comparaison sur nom_fonction ...

si ton objectif est d'éxécuter une fonction directement à partir de la chaîne nom_fonction, ce n'est possible qu'à condition
que les fonctions à appeler soient des méthodes (publiques?) d'un objet et en faisant appel aux RTTI. (Run Time Type Infos).

Dans le cas contraire, tu peux aussi construire un tableau à deux dimensions (String, pointeur sur fonctions ) à conditions que toutes les fonctions à appler aient le même prototype.

Damien




vendredi 29 octobre 2004 à 20:49:59 | Re : Appel de Fonction de façon "dynamique"

ZeWaren

Membre Club
Réponse acceptée !
Jette un coup d'oeil la dessus et dit nous si ca peut t'aider : [ Lien ]


[ Lien ]

J'espere avoir pu aider...

Pourquoi remetre à demain ce qu'on peut faire après demain ?

vendredi 29 octobre 2004 à 23:38:32 | Re : Appel de Fonction de façon "dynamique"

JulioDelphi

Membre Club Administrateur CodeS-SourceS
WOW
superbe code !
a garder en favoris :)
merci ZeWaren ;)

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !

-------------------------------------------
[ Lien ] : mon site refait ! Delphi power !

samedi 30 octobre 2004 à 02:29:10 | Re : Appel de Fonction de façon "dynamique"

Delphiprog

Administrateur CodeS-SourceS
OK, le code est bien, mais il ne s'applique qu'à des méthodes et non à des procédures ou fonctions "toutes simples", autrement dit celles qui ne sont pas "of object".

Affaire à suivre...

May Delphi be with you

samedi 30 octobre 2004 à 17:48:59 | Re : Appel de Fonction de façon "dynamique"

neko

non, ca s'applique tres bien a n'importe quelle variable, ce code marche impec, il suffit de definir les procedures avec le meme nombre de param et le meme type.


TProcedure2Param = procedure(Param1, Param2: String);

TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

Procedure Stuff(Param1, Param2: String);
Procedure ReStuff(Param1, Param2: String);

var
Form1: TForm1;
Procedure2Param: TProcedure2Param;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
@Procedure2Param := @Stuff;
Procedure2Param('a', 'b');
@Procedure2Param := @ReStuff;
Procedure2Param('a', 'b');
end;

Procedure Stuff(Param1, Param2: String);
Begin
ShowMessage('Stuff');
End;
Procedure ReStuff(Param1, Param2: String);
Begin
ShowMessage('ReStuff');
End;



bouh


1 2

Cette discussion est classé dans : fonction, dynamique, appel, souhaite, façon


Répondre à ce message

Sujets en rapport avec ce message

prb avec dll et tableau dynamique [ par bd ] actuellement je recois en parametre d'une fonction un tableau de longueur variable. ce tableau est rempli dans la fonction de la dll.au retour dans la Tableau dynamique et fonction [ par slachz ] voilà, j'ai une fontion qui récolte les images d'un dossier et les stockent dans un tableau dynamique (la taille changeant en fonction du nombre d'ima Pas de son à l'appel d'une fonction Javascript [ par veuda ] Bonjour,j'ai une question au sujet du composant TWebrowser et de Javascript.J'ai une petite application qui affiche du contenu dans un TWebrowser.Pour Class dynamique... événement [ par juli1m ] Bon, ben déjà, désolé pour le sujet, il n'est pas forcément clair, mais voici quelques explications.ce que je veux faire, c'est: - je créé une class, Création dynamique ou libération à l'ouverture ? [ par wininfos ] Bonjour,Je souhaite réaliser une application dont l'interface change un peu en fct du status de l'utilisateur "Administrateur, Invité...". Je souhaite Problem de pointeur lors de l'appel d'une fonction d'une DLL [ par astrorico44 ] Bonjour,j'essai d'appeler une fonction d'une DLL ecrite en C en delphiles premieres fonctions de la DLL fonctionnent mais je n'arrive pas a appeler la Appel de fonction [ par Clercq ] Voici mon probleme, lors de la compilation de mon code j'ai l'erreur suivante : "Forme d'appel de méthode autorisée seulement pour méthodes de classe" fonction dans laquelle se trouve le curseur [ par Guillemouze ] salut a tous, je voudrais savoir si vous connaissez un expert ou un truc dans le genre qui me dise ou se trouve mon curseur (un peu a la visual studio Fonction pour convertir un extended en string? [ par stigmate101 ] Salut, j'ai une question très simple, je voudrais conertir un type extended en un type string. Merci d'avance @+ Datagrames ? [ par John Dogget ] Salut à tous. Je cherche à me faire un petit moniteur réseau , avec les débits instantannées, des petits graphiques pour visualiser ces débits etc. Av


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.