我要用到#13等,但13不是直接给出的,是一个变量代替的,#j ,j代表13,请问用什么办法可以实现。

解决方案 »

  1.   

    你说的#45这是一个字符串么?s := '#' + IntToStr(i);
      

  2.   

    谢谢你哈,我先试试,很感谢你zeroxing(光头) 。
      

  3.   

    procedure TForm1.getnum_click(Sender: TObject);
    var
    i:TWinControl;
    j:integer;
    s:string;
    begin
    j:=(sender as Tspeedbutton).Tag;
    if Self.ActiveControl is Tedit then
    i:=Self.ActiveControl;
    sendkey(i.Handle,#j);
    end;
    我要在界面上做个小键盘,让代表数字的speedbutton响应同一个过程,如上面,sendkey是我定义的函数,j代表数字的ascII码。
    如果我再定义个s ,s:='#'+'j',运行的时候提醒字符和字符串不匹配。头有点晕了。请帮我想想办法啊,应该很简单的。谢谢了啊。
      

  4.   

    就是说,数字1的按钮的tag为1对不对?
    你加个井号应该没有什么用的吧?sendKey(i.handle, IntToStr(i)[1]);//IntToStr返回字符串,取它的第一个字符,只适用一个数字情况。i? 这样的变量名不好呀。
      

  5.   

    看看,比较一下就知道是“字符和字符串不匹配”的问题了!
    j:integer;
    s:string;j:=(sender as Tspeedbutton).Tag;
    s:='#'+j;因为“j:=(sender as Tspeedbutton).Tag”不是string类型,
    所以要转换过来才可以付值,请试用以下语句:
    s:='#'+IntToStr(j);