请问题这段代码有什么错呢?

请问题这段代码有什么错呢?
delphi xe8和xe10都报 Duplicate case label 错呢?

procedure TForm1.FormCreate(Sender: TObject);
var
c: Char;
begin
case c of
#130:
ShowMessage(#130);
#131:
ShowMessage(#130);
#132:
ShowMessage(#130);
#133:
ShowMessage(#130);
#134:
ShowMessage(#130);
#135:
ShowMessage(#130);
#136:
ShowMessage(#130);
end;
end;

label标签重复,看看完整的代码

代码就只写这么一段。没有其他代码

duplicate就是重复的意思,没有别的代码,怎么改呢

编程是一种美德,是促使一个人不断向上发展的一种原动力。

改成这样编译就可以问题:
procedure TForm1.FormCreate(Sender: TObject);
var
c: Char;
begin
case c of
#30:
ShowMessage(#130);
#31:
ShowMessage(#130);
#32:
ShowMessage(#130);
#33:
ShowMessage(#130);
#34:
ShowMessage(#130);
#35:
ShowMessage(#130);
#36:
ShowMessage(#130);
end;
end;

“Duplicate case label”,就是case语句中,出现相同的选择of指定值。

原因分析:
一、Delphi 7 中Char类型的取值范围是: #0..#255, 用十六进制表示是: #$0..#$FF。
Delphi 2010之后,Char 默认 WideChar 二个字节,它的取值范围,就是ASCII码。

二、Delphi 7 中#130..#136是ASCII码,它们是有效的不同字符。
    Delphi 2010之后,#130..#136不是有效的字符,对应的字符是空(无字符)。

这样,在XE8中下述代码,就会出现: “Duplicate case label”错误:
var c: Char;
begin
case c of
#130: ShowMessage(#130);
#131: ShowMessage(#130);
#132: ShowMessage(#130);
#133: ShowMessage(#130);
#134: ShowMessage(#130);
#135: ShowMessage(#130);
#136: ShowMessage(#130);
end;
end;
上述代码在Delphi7中,不会出现错误。

如果在Delphi7中,执行下述代码,同样出现“Duplicate case label”错误:
var c: Char;
begin
case c of
#56: ShowMessage(#130);
#56: ShowMessage(#130);
#56: ShowMessage(#130);
#56: ShowMessage(#130);
#56: ShowMessage(#130);
#56: ShowMessage(#130);
#56: ShowMessage(#130);
end;
end;