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





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