Pour on contre le Sender ?
voici le problème:
Sous ActionScript on utilise généralement des fonctions anonymes pour gérer les évènements:
Code:
1 2 3 4 5
|
{
Movie.onPress = function() {
}
} |
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:
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; |
par contre cette syntaxe gagnerait à avoir un paramètre Sender à la Delphi
Code:
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'équivalent ActionScript serait
Code:
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) {
}
} |
L'autre solution serait d'autoriser les fonctions anonymes
Code:
1 2 3 4 5 6 7
|
Button1.onPress = procedure begin
...
end;
Button2.onPress = procedure begin
...
end; |
Qu'en pensez-vous ?
:fleche: non c'est bien comme c'est
:fleche: il faut ajouter un Sender
:fleche: il faut autoriser les fonctions anonymes
:fleche: hein ?!