Главная страница | назад





Article #16965: Assigning a comp type to an integer

 Question and Answer Database
FAQ1965D.txt Assigning a comp type to an integer
Category :Object Pascal
Platform :All
Product :All 32 bit
Question:
I am using a comp type (64 bit integer) and would like to assign
the value to an integer. Using the Trunc function is too slow. Is
there a better way?
Answer:
The VCL defines a type called TLargeInteger that is a comp type
that is broken down into the integer components Low and High. You
could simply cast the comp as a TLargeInteger and access one of it's
members, and avoid using floating point functions to get at it's
underlying integer value.
Example:
procedure TForm1.Button1Click(Sender: TObject);
var
c : comp;
i : integer;
begin
c := $FFFFFF;
// i := c; This won't work — incompatible types!
i := Trunc(c); // This works but has additional overhead;
i := TLargeInteger(c).LowPart;
end;
7/16/98 4:31:28 PM

Last Modified: 01-SEP-99