[fpc-pascal] Moving callbackfunctions to class
dhkblaszyk at zeelandnet.nl
Thu Dec 30 18:27:52 CET 2010
On Dec 30, 2010, at 6:09 PM, michael.vancanneyt at wisa.be wrote:
> On Thu, 30 Dec 2010, Jonas Maebe wrote:
>> On 30 Dec 2010, at 17:34, Darius Blaszyk wrote:
>>> As these functions are needed per window, I would like to encapsulate each window in a class something like:
>>> TMyGLutWindow = class
>>> procedure MyDisplayFunc; cdecl;
>>> constructor Create;
>>> In the constructor I would like to set the displayfunction. But doing this I get the error:
>>> Error: Incompatible types: got "<procedure variable type of procedure of object;CDecl>" expected "<procedure variable type of procedure;CDecl>"
>>> Though I understand the error, I do not know if there is a way to circumvent this?
>> Maybe with a static class method? (they may require svn trunk to work though) You won't be able to access any fields from that one, of course.
> That kind of defeats the purpose, if you want to create a wrapper around the
> window instance, which I understood to be the intention of Darius ?
The intention is indeed to create a wrapper around the multiple callback functions that GLut provides and additionally add some other methods and properties. I have tried using a class method (FPC 2.4.2) but not static class methods, although I don't really understand what you mean with "you won't be able to access any fields from that one". Afaik class methods have a self, right? That would suggest you can access any method or property of self from a class method?
More information about the fpc-pascal