Tom*_*Tom 7 delphi pascal delphi-7
我正在尝试为一周中的几天制作自定义数据类型,但我无法写它.编译错误说明了这一点:
[Error] hours.dpr(28):Write/Writeln语句中的类型非法
program hours;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TypeDay = (Sun,Mon,Tue,Wed,Thu,Fri,Sat);
var day: TypeDay;
begin
for day := Sun to Sat do
begin
writeln(day);
end;
end.
Run Code Online (Sandbox Code Playgroud)
它在Windows上的Delphi 7中.
Ger*_*lí- 17
你不需要为此编写汇编程序; TypInfo包含执行此操作所需的所有内容(获取与枚举值关联的字符串).
这段代码:
program hours;
{$APPTYPE CONSOLE}
uses
SysUtils,
TypInfo;
type
TypeDay = (Sun,Mon,Tue,Wed,Thu,Fri,Sat);
var
day: TypeDay;
Str:String;
begin
for day := Sun to Sat do begin
Str := GetEnumName(TypeInfo(TypeDay),ord(day));
writeln(Str);
end;
end.
Run Code Online (Sandbox Code Playgroud)
这是输出:

问候.
RRU*_*RUZ 11
Tom,Writeln不支持Enum作为参数.你必须调用Ord函数来获得序数表示.如果你想显示你的名字TypeDay你可以写这样的代码.
program hours;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TypeDay = (Sun,Mon,Tue,Wed,Thu,Fri,Sat);
const
TypeDayStr : Array[TypeDay] of string = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
var day: TypeDay;
begin
for day := Sun to Sat do
writeln( Ord(day));
for day := Sun to Sat do
writeln( TypeDayStr[day]);
Readln;
end.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2864 次 |
| 最近记录: |