juli1m
Messages postés14Date d'inscriptionvendredi 6 février 2004StatutMembreDernière intervention14 février 2005
-
4 juin 2004 à 16:52
juli1m
Messages postés14Date d'inscriptionvendredi 6 février 2004StatutMembreDernière intervention14 février 2005
-
8 juin 2004 à 10:45
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, elle sera utilisée par quelqu'un d'autre.
- une class qui ne sera pas un composant...
- qu'il y ait une fonction (ou procédure) que j'appelle depuis une méthode de ma classe, mais je ne met rien dedans. c'est à un autre utilisateur de la class de dire ce que fera cette fonction.
en fait, ce que je veux faire, c'est une sorte d'événement, mais je n'arrive pas à voir comment on en créé.
en gros la fonction que je cherche à faire, elle servira soit à afficher quelque chose, soit à executer une autre fonction.
Loulibier
Messages postés309Date d'inscriptionjeudi 6 juin 2002StatutMembreDernière intervention24 septembre 20082 4 juin 2004 à 20:58
Salut,
Si j'ai bien compris ce que tu veux faire, sa donnerais ça :
tu te déclare un type de procedure :
type
TMaProc = procedure(const Toto: string) of object;
puis tu déclares une variable de ce type, ainsi qu'une procedure pocèdant les même paramètres :
private
FMaProc: TMaProc;
procedure Maprocedure(const Toto : string);
puis tu déclares une propriété qui permettra à l'utilisateur de ta classe d'utiliser ta procedure.
published
property MaProc : TMaProc read FMaProc write FMaproc
puis il ne te reste plus qu'a creer ta procedure en indiquant qu'elle doit executer la procedure de l'utilisateur si l'utilisateur à lier une procedure à ta classe.
procedure Maprocedure(const Toto : string);
begin
if Assigned(FMaProc) then
FMaProc(Self)
else
begin
// tu mets ton code si il n'ya pas de procedure lier.
end;
end;
juli1m
Messages postés14Date d'inscriptionvendredi 6 février 2004StatutMembreDernière intervention14 février 2005 7 juin 2004 à 09:21
Merci Loulibier, ça ressemble bien à ce que je voudrais faire.
je pense avoir compris ce que tu veux m'expliquer, par contre, comment fait-on pour lier une procédure à une classe ?
est-ce que ça marche aussi avec une fonction ?
juli1m
Messages postés14Date d'inscriptionvendredi 6 février 2004StatutMembreDernière intervention14 février 2005 8 juin 2004 à 10:45
Loulibier, merci encore pour la solution que tu m'as passée.
j'ai fait le test de lier une fonction, et ça marche.
ceci dit, en regardant bien, je ne suis même pas sûr que ça me sera utile de le faire avec des fonctions.