cobines wrote:
> everything is ok. But I can also assign it using class name:
> 
>   CM.Callback := TContextMenu.ContextMenuSelect;
> 

This is the way it's supposed to work in delphi mode, as far as I
remember Delphi allows it (disclaimer: I don't have Delphi now to check,
but it used to be so around Delphi 7).

This has actually one useful feature: when ContextMenuSelect is a "class
procedure", this is a safe and valid operation (class procedures can be
safely called by only a class reference, that's their point after all).
In objfpc I achieve the same by the unclean trick "CM.Callback :=
TContextMenu(nil).ContextMenuSelect;"

Unfortunately, the way it's implemented in delphi, it also allows this
very unsafe assignment when ContextMenuSelect is a normal (not class)
method.

Michalis
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to