Re: [fpc-pascal] Assigning class method to procedure of object via class name in delphi mode
2010/1/25 Michalis Kamburelis michalis.ka...@gmail.com: 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). I see. I suspected as much, but wanted to make sure it's not a bug, since I never used Delphi. Thanks for explanation. -- cobines ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Assigning class method to procedure of object via class name in delphi mode
No, the assignment shouldn't be allowed. The assignment to procedure of object should only be allowed from instances. SizeOf(TNotifyProc) = SizeOf(Pointer) * 2 See also: the TMethod record ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] Assigning class method to procedure of object via class name in delphi mode
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