[fpc-pascal] Generic (TFPGObjectList) EInvalidCast

Vojtěch Čihák vojtech.cihak at atlas.cz
Tue Dec 11 22:28:23 CET 2018


Sorry for noise, this was wrong code and even more it has nothing to do with generics.
I can solve it with class helper.
 
V.
 
______________________________________________________________
> Od: "Vojtěch Čihák" <vojtech.cihak at atlas.cz>
> Komu: "FPC-Pascal users discussions" <fpc-pascal at lists.freepascal.org>
> Datum: 11.12.2018 22:19
> Předmět: [fpc-pascal] Generic (TFPGObjectList) EInvalidCast
>
Hi,
  
 why this code gives EInvalidCast at runtime (but compiles well):w
  
 program Project1;
 {$mode objfpc}{$H+}
  
 uses
   {$IFDEF UNIX}{$IFDEF UseCThreads}
   cthreads,
   {$ENDIF}{$ENDIF}
   Classes, fgl
   { you can add units after this };
  
 {$R *.res}
 type
   TMyClass = class
     procedure Output1;
   end;
  
   TMyList = class (specialize TFPGObjectList<TMyClass>)
  
   end;
  
   TMyDescClass = class(TMyClass)
     procedure Output2;
   end;
  
 var MyList: TMyList;
     MyClass: TMyClass;
  
 procedure TMyClass.Output1;
 begin
   WriteLn('Output1');
 end;
  
 procedure TMyDescClass.Output2;
 begin
   WriteLn('Output2');
 end;
  
 begin
   MyList:=TMyList.Create(True);
   MyClass:=TMyClass.Create;
   MyList.Add(MyClass);
   MyList[0].Output1;
   TMyDescClass(MyList[0]);  // EInvalidCast
   MyList.Free;
 end.
  
 Thanks for help,
  
 V.
 _______________________________________________
 fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
 http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal <http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20181211/02a9b09b/attachment.html>


More information about the fpc-pascal mailing list