On 2016-04-28 14:22, Peter wrote: > I suspect '(W div 2) gives int64. Interesting thought. But a Integer div Integer cannot give a result larger than a Integer type, so why is the compiler upscaling the result it to a Int64?? If that is really what the compiler is doing, then something is going way wrong, or I simply don't understand the logic.
I looked through the help, and the Objects.pp unit actually has a LongDiv() method which does a DIV between two Integer types and returns a Integer [as one would expect the result to be]. But looking at its implementation I see it required a Integer cast too. Very strang compiler behaviour. :-/ FUNCTION LongDiv (X: LongInt; Y: Integer): Integer; BEGIN LongDiv := Integer(X DIV Y); 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 _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal