[fpc-pascal] Documentation example error

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Tue Jan 26 10:58:39 CET 2016


On 2016-01-25 16:32, Michael Van Canneyt wrote:
> 
> They should definitely be compilable.


To make the typeinfex/*.pp examples compilable, I had to make some
changes as shown below. I don't hope text wrapping screws this up, but
just in case, I attached the patch too. Before, it seems it was valid to
typecast a Set as Integer(), but testing with FPC 3.0 it seems
typecasting as Byte() is now required.

If I don't, the compile gives the following error:

   ex8.pp(25,17) Error: Illegal type conversion: "LongInt" to "TMyEnums"

Do you know when this change was made in FPC, and where it is documented
(eg: wiki User Changes ...)?

====================================
[typinfex (master)]$ git diff ex8.pp
diff --git a/typinfex/ex8.pp b/typinfex/ex8.pp
index 1a9d71e..e0c720c 100644
--- a/typinfex/ex8.pp
+++ b/typinfex/ex8.pp
@@ -20,9 +20,9 @@ begin
   O:=TMyTestObject.Create;
   O.SetField:=[mefirst,meSecond,meThird];
   PI:=GetPropInfo(O,'SetField');
-  Writeln('SetToString (brackets) :
',SetToString(Pi,Integer(O.SetField),True));
-  Writeln('SetToString (default)  : ',SetToString(Pi,Integer(O.SetField)));
-  O.SetField:=TMyEnums(StringToSet(PI,ConstSet));
-  Writeln('Stringtoset            : ',SetToString(PI,Integer(O.SetField)));
+  Writeln('SetToString (brackets) :
',SetToString(Pi,Byte(O.SetField),True));
+  Writeln('SetToString (default)  : ',SetToString(Pi,Byte(O.SetField)));
+  O.SetField := TMyEnums(Byte(StringToSet(PI,ConstSet)));
+  Writeln('StringToSet            : ',SetToString(PI,Byte(O.SetField)));
   O.Free;
 end.
====================================




Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: typeinfex_ex8.pp.patch
Type: text/x-patch
Size: 841 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20160126/642cb88b/attachment.bin>


More information about the fpc-pascal mailing list