俺想问一下,为什么下面的语句有错

locust2002 2003-08-22 03:01:05
2。俺想问一下,为什么下面的语句有错
procedure TForm1.Button1Click(Sender: TObject);
var j:string;
begin
j:='1';
case j of
'1':showmessage('1');
'2':showmessage('2');
end;
end;
---------------------------------------这是错误
[Error] Unit1.pas(30): Ordinal type required
[Error] Unit1.pas(31): Incompatible types: 'Integer' and 'Char'
[Error] Unit1.pas(32): Incompatible types: 'Integer' and 'Char'
---------------------------------------
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flying310 2003-08-22
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var j:string;
begin
j:='1';
case j[1] of
'1':showmessage('1');
'2':showmessage('2');
end;
end;
也可以用整型但SHOWMESSAGE();是字符形参数。
foreveryday007 2003-08-22
  • 打赏
  • 举报
回复
又懂了一个东西~~
madyak 2003-08-22
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var j:string;
begin
j:='1';
case j[1] of
'1':showmessage('1');
'2':showmessage('2');
end;
end;
Shiyl 2003-08-22
  • 打赏
  • 举报
回复
不要责怪!你们当年想必也是这么过来的只是没有被旁人看到而已
DWGZ 2003-08-22
  • 打赏
  • 举报
回复
谁说不能是字符:), 纯属无聊, 应该说只能是有序类型
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i: char;
begin
case i of
'a': ;
'b': ;
end;
end;
  • 打赏
  • 举报
回复
j:='1';
j应当为 integer 型,


正确的代码:
procedure TForm1.Button1Click(Sender: TObject);
var j:integer;
begin
j:=1;
case j of
1:showmessage('1');
2:showmessage('2');
end;
end;
ZyxIp 2003-08-22
  • 打赏
  • 举报
回复
Case XXX of

XXX必须是顺序形的,不能是字符

var
j:integer;
begin
j:=1;
case j of
1:showmessage(这种问题以后不要问不是所有的问题都能问,先要自己去看看书);
2:showmessage(大家是给你思路,而不是手把手教你,先找本PASCAL书看看);
end;
end;



2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧