voici le problème:
Sous ActionScript on utilise généralement des fonctions anonymes pour gérer les évènements:
Sous FlashPascal j'ai voulu m'inspirer de Delphi et je n'ai pas autorisé les méthodes anonymes que je n'aime pas personnellement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 { Movie.onPress = function() { } }
par contre cette syntaxe gagnerait à avoir un paramètre Sender à la Delphi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 type MovieClip = class ... property onPress: procedure of object; end; begin Movie.onPress := doPress; end; procedure MyMovie.doPress; begin end;
L'équivalent ActionScript serait
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 type MovieClip = class ... property onPress: procedure(Sender: TObject) of object; end; begin Button1.onPress := doPress; Button2.onPress := doPress; end; procedure MyMovie.doPress(Sender: TObject); begin if Sender = Button1 then... end;
L'autre solution serait d'autoriser les fonctions anonymes
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 { var self = this; // nécessaire pour référencer this dans la méthode anonyme Button1.onPress = function() { self.doPress(Button1); } Button2.onPress = function() { self.doPress(Button2); } } class Movie ... function doPress(Sender: Object) { } }
Qu'en pensez-vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Button1.onPress = procedure begin ... end; Button2.onPress = procedure begin ... end;
non c'est bien comme c'est
il faut ajouter un Sender
il faut autoriser les fonctions anonymes
hein ?!
Partager