>*-- Manipulador - Classe que manipulará o evento
>DEFINE CLASS Manipulador AS Custom
>PROCEDURE OnDClick
>MESSAGEBOX("Você clicou no RightClick")
>ENDPROC
>ENDDEFINE
>
>The rightClick work perfectly.
Nothing looks wrong here... just two possible problems. One is the scope of the variable holding the reference to your button's parent form - are you sure that it is visible in the context of button's click and rightclick? Usually I keep both the source object and the delegate object as members of the same form, not standalone variables, so they execute in the context of the form (with the added benefit that I can use thisform reference in the code).
The other is that you're trying to catch both click and rightclick, which may be tricky - not sure whether .click shouldn't fire when there's a rightclick. You may be better off binding .mouseUp() and then in your delegated code decide which click was it, left or right, from the nButton parameter. Note that your delegated code would have to have the same parameters.