var x :integer;
procedure TForm1.Button1Click(Sender: TObject);
  begin
    x:=inputbox('111','111','')
    case x of                       //错误提示这行!!!,怎么了?
    1:showmessage '1';
    2:showmessage '2';
    3:showmessage '3';
    else
    showmessage '不是123';
    end;
  end;
end.
-----------------------------------------------2.  我想用   x:=edit1.text   //就是x的值是edit1.text用不了,改怎么写-----------------------------------------------3.  要给 x 赋值,必须先定义 x 的类型吗?
如:x:=1,这样直接贴代码上,不能调试,
前面得加句    var x:string  ,才可以!!  谢谢纠正!!!!! 

解决方案 »

  1.   

    InputBox 返回字符串类型,
    case StrToInt(x) of 
      

  2.   

    谢谢了,当做好人,做好事,把上面几个小问题解答下,还有这个问题也顺便解一下!!procedure TForm1.Button1Click(Sender: TObject);
    var a:integer;
    begin
    if edit1.Text ='admin' then
        showmessage( '登陆成功!!')
        else
        a := a+1
          if a = 3 then    //错误提示这行
          showmessage ('输入错误3次,程序自动退出!')
    end
    end;
    end.
    谢拉!!!!
      

  3.   

    你的代码怎么这么乱啊begin少,;也少
      

  4.   

    var 
      a:integer;
    //a定义为全局变量procedure TForm1.Button1Click(Sender: TObject);
    begin
    if edit1.Text ='admin' then
    begin
      showmessage( '登陆成功!!');
      a:=0;
    end
      else
      begin
        a := a+1;
        if a = 3 then //错误提示这行
         showmessage ('输入错误3次,程序自动退出!')
      end;
    end;
    end.
    另外逻辑不是这样的,a要放在全局变量里面才能达到你所要的输入错误3次程序自动退出
      

  5.   


    procedure TForm1.BitBtn61Click(Sender: TObject);
    var
      s:string;
    begin
      s:=InputBox('ok','what','');
      Caption:=s;
      case StrToInt(s) of
        0:Caption:='Zero';
        1:Caption:='Hello';
      end;
    end;计数的变量声明到全局,类似C的静态变量。
    变量必须先声明再使用
      

  6.   

    你的x定义有错误inputbox('111','111','')
    返回的是String类,而你定义的是Integer类
    你可以改下 x:string;
    var x :String;
    procedure TForm1.Button1Click(Sender: TObject);
      begin
      x:=inputbox('111','111','')
      case StrToInt(x) of //错误提示这行!!!,怎么了?
      1:showmessage '1';
      2:showmessage '2';
      3:showmessage '3';
      else
      showmessage '不是123';
      end;
      end;
    end.
    但是如果你的InputBox里面输入的不是整形也会报错;
    这里建议最好用Edit来控制输入的数据;
    ………………………………………………………………………………
    Edit1.text  输出的是String类
    你如果定义x为Integer类。想要去的Edit中的值必须先转换类型,类型对不上和谈的等于呢
    你可以修改x的类或者x:=StrToInt(Edit1.text);………………………………………………………………………………
    给x赋值必须知道x的类型。你无缘无故写个x,别说计算机,哪怕是其他的程序员也不知道你x是什么类型,什么类型都不知道怎么给他赋值呢?
    所以如果你要定义常量或者变量,必须先定义其类型,然后给他赋值