[fpc-pascal] class of a class function

CA Gorski fpc-pascal-list at artelogic.com
Tue Aug 7 12:45:06 CEST 2012


Yes, you are right.
Due to the problem that I couldn't store a class function in a var of 
type function of object (I reported earlier) I found a workaround:

var
     MyVar: function: boolean of object;
...
     MyVar:=@TSomeClass(nil).MyClassFunc;

and that's why Self is nil. But I can do

     MyVar:=@TSomeClass(TSomeClass).MyClassFunc;

which solves all problems (so far). :)



On 07.08.2012 11:52, Jonas Maebe wrote:
>
> CA Gorski wrote on Tue, 07 Aug 2012:
>
>> I tried that already, but at least in my case Self is Nil inside the 
>> class function.
>> Compiler (fpc 2.6.1 ) bug?
>
> It does not return nil for me:
>
> ***
> {$mode objfpc}
>
> type
>   TSomething = class
>     class function GetMyClass: TClass;
>   end;
>
> class function TSomething.GetMyClass: TClass;
> begin
>   Result:=self;
> end;
>
> begin
>   writeln(ptrint(TSomething.GetMyClass));
> end.
> ***
>
>
> Jonas
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>




More information about the fpc-pascal mailing list