case X>a of true:语句N False: end;DELPHI有没有像VB一样的PRINT语句,没有 不过有方法,就是获取桌面句柄,然后随你在上面怎么写和画
这个问题其实也挺有意思的。 {==============这样可以曲折实现============} 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
关于将字符串打印到窗体上,可以这样: procedure TForm1.Button1Click(Sender: TObject); var DC: HDC; begin DC := GetDC(Self.Handle); SetBkMode(DC, TransParent); TextOut(DC, 10, 30, '你好', 4); end; TForm还封装了Canvas对象,也可以直接使用它
关于将字符串打印到窗体上, Canvas->TextOutA(10,30,'你好');用IF语句!
case of 只能针对有序数列。
使用控制臺的話,可以使用writeln
CASE 只支持序数类型(ordinal type),如:整数:1,2,3... 枚举数:M1,M2,M3.. 字符:'A','B','C' BOOL:TRUE,FALSE所以建议使用BOOL进行使用,如CASE A>0 OF TRUE:... FALSE:.. END;
true:语句N
False:
end;DELPHI有没有像VB一样的PRINT语句,没有
不过有方法,就是获取桌面句柄,然后随你在上面怎么写和画
{==============这样可以曲折实现============}
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
procedure TForm1.Button1Click(Sender: TObject);
var
DC: HDC;
begin
DC := GetDC(Self.Handle);
SetBkMode(DC, TransParent);
TextOut(DC, 10, 30, '你好', 4);
end;
TForm还封装了Canvas对象,也可以直接使用它
Canvas->TextOutA(10,30,'你好');用IF语句!
只能针对有序数列。
枚举数:M1,M2,M3..
字符:'A','B','C'
BOOL:TRUE,FALSE所以建议使用BOOL进行使用,如CASE A>0 OF
TRUE:...
FALSE:..
END;