Bonjour
Je possède un object TParser qui possède un evenement OnGetVar : TGetVarEvent
Il s'agit bien entendu d'une procedure of object
Mon problème et que je voudrais connecter une procedure local qui n'est dnc pas une procedure of objects
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 TGetVarEvent = procedure(Sender : TObject; VarName : string; var Value : Extended; var Found : Boolean) of object;
Bien entendu cela ne fonctionne pas, j'ai essayais diverses options (Addr, @, transtypage) mais rien n'y fait. Pourtant j'ai souvenir d'avir déjà fait ce genre de manip et que c'était simple .... mais j'ai un trou (où alors je rêve )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 FUNCTION TFenetre.Preparer_affichage_resultats:Boolean; PROCEDURE Evt_Remplir_Variables(Sender : TObject; VarName : string; var Value : Extended; var Found : Boolean); BEGIN Value:=0; END; BEGIN Mon_Parser.OnGetVar:=Evt_Remplir_Variables ..... END;
Si une bonne âme pouvait me dépanner, merci
N.B. Je ne peux pas mettre ma proc Evt_Remplir_Variables au niveau de TFenetre, ce qui résoudrai le "problème". Le contexte de calcul se trouve dans Preparer_affichage_resultats et pas ailleurs
[EDIT]
Je pense avoir trouvé, en tant cas cela compile...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 FUNCTION TFenetre.Preparer_affichage_resultats:Boolean; VAR POnGetVar : ^Parser_Math.TGetVarEvent; PROCEDURE Evt_Remplir_Variables(Sender : TObject; VarName : string; var Value : Extended; var Found : Boolean); BEGIN Value:=0; END; BEGIN POnGetVar :=@Evt_Remplir_Variables; Mon_Parser.OnGetVar:=POnGetVar^; ..... END;
[EDIT]
Non cela plante majestueusement...
[edit] Modifié par Pascal Jankowski pour éviter la déformation du forum [/edit]
Partager