- - * - WhiteUnicorn - * - -




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >


Frequently Asked Questions

Assigning a comp type to an integer

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;



* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >



- - * - Anastasija aka WhiteUnicorn - * - - LJLiveJournal
PFPhotoFile