case a of
//>a : 语句n
end;
此外,DELPHI有没有像VB一样的PRINT语句,将结果直接输出在屏幕上?如果有,是什么?

解决方案 »

  1.   

    case 好像就只有整形、字符形的才可以吧,没有判断的
      

  2.   

    case X>a of 
    true:语句N
    False:
    end;DELPHI有没有像VB一样的PRINT语句,没有
    不过有方法,就是获取桌面句柄,然后随你在上面怎么写和画
      

  3.   

    这个问题其实也挺有意思的。
    {==============这样可以曲折实现============}
    procedure TForm1.Button1Click(Sender: TObject);
    var
      X: integer;
    begin
      X := High(Integer);
      case Byte(X>0)-Byte(X<0) of
         1: Showmessage('X>0');
         0: Showmessage('X=0');
        -1: Showmessage('X<0');
      end;  X := 0;
      case Byte(X>0)-Byte(X<0) of
         1: Showmessage('X>0');
         0: Showmessage('X=0');
        -1: Showmessage('X<0');
      end;  X := -222;
      case Byte(X>0)-Byte(X<0) of
         1: Showmessage('X>0');
         0: Showmessage('X=0');
        -1: Showmessage('X<0');
      end;
    end;{===========================================}{由此可以模拟实现VB的Sgn()函数}function Sgn(Int: integer): integer;
    {VB的Sgn函数返回值:Int>0,返回1;Int=0,返回0;Int<0,返回-1}
    begin
      Result := Byte(Int>0)-Byte(Int<0);
    end;{其实,要实现Sgn(),只要用if..else就可以了,前面有人说过,我就不说了。继续沿着楼主的研究方向case of语句说。每一种语言都有不同的特点(风格)。就拿case语句来说吧,Delphi可以用子界类型,例如:}{==========================================}case X of
      1..9:    ;
      0:       ;
      else ;
    end;{而VB就不可以写得这样简练。曾经用VB模拟过,如下:}Dim X
    select case True
      case (x>=1) and (x<=10)
        '"1-10"
      case (x>=11) and (x<=20)
        '"11-20"
      case (x>=21) and (x<=30)
        '"21-30"
    end select
      

  4.   

    关于将字符串打印到窗体上,可以这样:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      DC: HDC;
    begin
      DC := GetDC(Self.Handle);
      SetBkMode(DC, TransParent);
      TextOut(DC, 10, 30, '你好', 4);
    end;
    TForm还封装了Canvas对象,也可以直接使用它
      

  5.   

    关于将字符串打印到窗体上,
    Canvas->TextOutA(10,30,'你好');用IF语句!
      

  6.   

    case of
    只能针对有序数列。
      

  7.   

    使用控制臺的話,可以使用writeln
      

  8.   

    CASE 只支持序数类型(ordinal type),如:整数:1,2,3...
    枚举数:M1,M2,M3..
    字符:'A','B','C'
    BOOL:TRUE,FALSE所以建议使用BOOL进行使用,如CASE A>0 OF
      TRUE:...
      FALSE:..
    END;