mm:=  integer(ss.Strings[1]);
zz := integer(ss.Strings[2]);
SetCursorPos(mm,zz);
这样有什么问题
鼠标移动和MM,ZZ不一样
本来MM=1
ZZ=3
应该移动的左上角,但他会移动的左下角,一样的代码, ZZ和MM的值一样,但鼠标移动的不一样,没次触发单击事件,鼠标移动的都不一样... 根本不是 MM ZZ的值..
a:='1222|11|45|36|78|'
xy = 分割文本 (a, “|”, )
SetCursorPos (到整数 (到整数 (xy [2]) + 到整数 (xy [4]) ÷ 2), 到整数 (到整数 (xy [3]) + 到整数 (xy [5]) ÷ 2))
帮把着局易语言代码译成DELPHI

解决方案 »

  1.   

    ok.Strings[1] =122
    integer(ok.Strings[1]) 就不等于 122了
      

  2.   

    不是 Integer(ss.Strings[1])
    而是 StrToInt(ss.Strings[1])
      

  3.   

    ss.Strings[1]本来是StrToInt
    我要把他转换成IntegerSetCursorPos(Integer(ss.Strings[1]),Integer(ss.Strings[2])); 
      

  4.   

    a:='1222|11|45|36|78|' 
    xy = 分割文本 (a, “|”, ) 
    SetCursorPos (到整数 (到整数 (xy [2]) + 到整数 (xy [4]) ÷ 2), 到整数 (到整数 (xy [3]) + 到整数 (xy [5]) ÷ 2)) 
    帮把着局易语言代码译成DELPHIvar a,xy:string;
    a:='1222|11|45|36|78|' ;xy:=copy(a,1,pos('|',a)-1);SetCursorPos( ord(xy[2])+ord(xy[4]) div 2 ),ord(xy[3])+ord(xy[5] div 2)
    xy[5]?从上面看,没xy[5]呀,
      

  5.   

    其实易语言的[]是在1开始的[1]
    DELPHI是从0开始的 比如 [0]
    所以要把易语言转成DELPHI要把[]-1
    才行
    比如 易语言的[1]
    delphi中是 [0
      

  6.   

    想不到这里还有人翻译易语言代码为Delphi代码
      

  7.   

    xy='1222'
    到整数 (xy [5]) ÷ 2))没有xy[5]呀,
      

  8.   


    你有没有测试过StrToInt函数?Strings显然是TStrings类型, Strings[1]和Strings[2]则是String类型。String类型转换为Integer就是用StrToInt函数。Integer(Strings[1])这样的强制类型转换,你知不知道它是怎么转换的?String变量本质上是一个指针,你这样转换是把这个指针值转换为Integer,怎么可能会得到正确的结果?
      

  9.   

    xy[4]是字符串类型xy[4]的值是 123
    如果将xy[4]的值转换成整数类型,值不变
      

  10.   


    var a : string;
    Asource:PAnsiChar;
    AStrings:TStringList;
    begin
        a:='1222|11|45|36|78|';
        Asource:=PAnsiChar(a);
        AStrings:=TStringList.Create;
        ExtractStrings(['|'], ['|'], ASource, AStrings);
        SetCursorPos(StrToInt(Astrings[1])+ StrToInt(AStrings[3]) div 2 , StrToInt(AStrings[2])+StrToInt(AStrings[4]) div 2);
        AStrings.Free;
    end;刚测试通过,鼠标跑到了(29,84)的位置。