var
str:string;
lint:longint;
str:='1224986568794';
lint:=1224986568794;

解决方案 »

  1.   

    procedure TForm1.Button3Click(Sender: TObject);
    var
      str:string;
      lint:Int64;
    begin
      //ListView1.ScrollBy(2, 2);
      str:='1234567890123';
      lint:= StrToInt64(str);
       Edit1.Text := IntToStr(lint);
    end;
      

  2.   


    当前Longint的内存字节长度等于Integer,也是32位的,所以使用StrToInt()函数就可以将string转换成Longint型。
    如果是64位的,还有StrToInt64()的转换函数可供使用。
      

  3.   

    Int64和Longint是不同的,因为他们的内存字节长度不同;
    Int64是64位的,取值范围为-2^63..2^63-1;
    Longint是32为的,取值范围为-2^31..2^31-1,即-2147483648..2147483647
    可以明显的看到1,2345,6789,0123大于21,4748,3647,所以Longint类型的变量是容纳不下的,你可以看到使用lint := StrToInt64(str)转换后的值是被截断的,并不是原来的1,2345,6789,0123;
    你可以写程序自己测试一下。