b5500centralcontrol.pas(119,18) Error: Incompatible types: got
"ShortInt" expected "ByteBool"
>>
>> b5500centralcontrol.pas(119,18) Error: Incompatible types: got
>> "ShortInt" expected "ByteBool"
>
> You need to cast nevertheless. It's just that they can be used in
> place of e.g. BOOL parameters for WinAPI functions whereby the
> argument value is passed like the underlying non-Boolean datatype.

Thanks Sven, noted and understood. In practice I've changed them all to qwords since this is the native size of the system being emulated, which leads to another question. If I have a field and property like

fPB1L: qword;
..
property PB1L: qword read: fPB1L write SetPB1L;

procedure ...SetPB1L(p: qword);
begin
  Assert((p = 0) or (p = 1));
  fPB1L := p
end;

is there an unobtrusive way of changing the property to effectively be

property PB1L: qword read fPB1L write fPB1L;

when assertions aren't being generated? The obvious way would be to use lots of $IFOPT C+ but is there anything more concise and maintainable? Can methods be inlined, and could the compiler successfully optimise-out a method which was a simple assignment?

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to