[fpc-pascal]Class Identification?

Michael Van Canneyt michael.vancanneyt at wisa.be
Mon Mar 24 15:33:33 CET 2003


On Mon, 24 Mar 2003 memsom at interalpha.co.uk wrote:

> Write a procedure or function that takes a 'self' pointer to the data. This is
> basically what methods are at the end of the day.
>
> If you want better allocation performance, you can always refactor the memory
> allocation routines too. If FPC follows Delphi's model, there will be a record
> that holds the memort allocation routines. Have a look for the record type
> TMemoryManager that will probably be located in System or Sysinit unit.
> Altering the way these routines work can greatly improve speed and resource
> usage.
>
> One other point.... you really should use 'is' and not 'MyObject.ClassType'.
> Surely:
>
>  if ( myinst is TButton ) then begin
>    ...
>  end;
>
> looks less ugly than:
>
>   if ( myinst.ClassType = TButton ) then ... ;

This is not entirely correct.
The latter will return false for a descendent of TButton, while the
former will give true. The exact statement corresponding to the
'is' operator is

if myinst.Inheritsfrom(TButton) then ... ;

Just crossing the t's and dotting the i's...

Michael.




More information about the fpc-pascal mailing list