Thorsten Engler <thorsten.eng...@gmx.net> schrieb am So., 29. Juli 2018,
04:40:

> type
>
>   TMyClass = class of TMyObject;
>
>   TMyObject = class
>
>     procedure InstanceMethod; //Self = TMyObject, can be virtual
>
>     class procedure ClassMethod; //Self = TMyClass, can be virtual
>
>     class procedure StaticClassMethod; static; //no Self, really just a
> global procedure in a scoped namespace
>
>   end;
>
>
>
> var
>
>   o: TMyObject;
>
>   c: TMyClass;
>
> begin
>
>   o.InstanceMethod; //if virtual, calls resolved based on actual class
>
>   o.ClassMethod; //if virtual calls, resolved based on actual class
>
>   o.StaticCalssMethod; //can’t be virtual, resolved on variable type
>
>
>
>   TMyObject.ClassMethod; //call resolved based on given type
>
>   TMyObject.StaticClassMethod; //call resolved based on given type
>
>
>
>   c.ClassMethod; //if virtual, calls resolved based on actual class
>
>   //haven’t tried if this one works, I assume it does:
>
>   c.StaticClassMethod; //can’t be virtual, resolved on variable type
>
> end;
>
@Gareth: And I mean the StaticClassMethod here.

Regards,
Sven

>
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to