有下面一条这样的语句
if (rbt1.checked=false and rbt2.checked=false and rbt3.checked=false) then
        begin
        application.MessageBox ('请选择查询类别','对不起',mb_ok);
        exit ;
        end;当第一次运行时、其中有一个为TRUE、程序不运行THEN后面的代码、
但当再次运行时、其中有一个为TRUE、程序运行THEN后面的代码、真是见鬼了、
怎么回事啊

解决方案 »

  1.   

    if not (rbt1.Checked or rbt2.Checked or rbt3.Checked) then
           begin
            application.MessageBox ('请选择查询类别','对不起',mb_ok);
            exit ;
            end;
      

  2.   

    其实可以按我上面那么写, 也可以这样
      if (not radiobutton1.checked) and (not radiobutton2.checked) and (not radiobutton3.checked) then
      begin
        application.MessageBox ('请选择查询类别','对不起',mb_ok);
        exit ;
      end;
    当然把not提出来的话,就跟我上面写的一样了,楼主那种要是加上括号的话跟这个是一个意思,不过写if *** = true/false好象不太好吧。
      

  3.   

    如果按菜鸟那样说的话那就不管怎么样都会运行then后面的代码了、我试了、怪不?
      

  4.   

    像你那样写的判断条件不对的。
    每个条件要括号
    killlaoli(菜鸟) 对了
      

  5.   

    =true和=false没错,但每个条件都要用括号括起来的.
      

  6.   

    按killlaoli(菜鸟) 那样有没有括号无所谓,
    按wangluoxing (我需要钱) 那样就一定要加括号
    因为,Pascal语言中and和or运算符的优先级比关系运算符高