type Minerals=(Ca,P,Mg,Cl,K,Na,Su,Co,Cu,I,Fe,Mn,Se,Zn,Mo,VitA,VitD,VitE);
这是一个枚举类型,我想在函数中调用枚举类型中某一个值(例如ca):
with ca do
end;
我想用枚举类型表示上面的语句怎么写?
with minerals(1) do
end;
可以这样吗?
如果不是这样,应该怎么写,我不想每次都要列举。
这是一个枚举类型,我想在函数中调用枚举类型中某一个值(例如ca):
with ca do
end;
我想用枚举类型表示上面的语句怎么写?
with minerals(1) do
end;
可以这样吗?
如果不是这样,应该怎么写,我不想每次都要列举。
解决方案 »
- 如何让加入到TImageList的中的图片自动适应大小
- 求助:如何打印 "select * from db where id<1000" 查询出来的表格啊!!
- 如何实现程序启动后10秒自动最小化到托盘,再过10秒又恢复到主窗口?
- 如何在listbox中加入checkbox
- 同一段代码,当窗体设置为mdichild时不执行,不知何解?
- 请教,添加、删除、保存和查询功能的使用控件和源代码.
- Delphi & C++
- 如何定义一个函数的参数类型为数组,急
- 在工程文件中使用sleep()函数为什么出错?
- 送分题:学delphi看什么书比较好
- 关于 Remobjecs在DLL接收消息异常的问题?
- A4如何直接打上下两联,上半部分和下半部分样
枚举是一个值,不存在with 枚举值 do这类的语法。
举个简单例子
type
TColor = (Red,Yellow,Blue);var
x: TColor;那么x赋值只能是
x:=Red;
x:=Yellow;
x:=Blue;如果要函数传递参数,那么
比如定义一个函数
function getColor(x: TColor): string;
begin
case x of
Red: Result := '红色';
Yellow: Result := '黄色';
Blue: Result := '蓝色';
else
Result := '未知';
end;
end;调用
getColor(Red);或者传入变量
var
x: TColor;
x := Red;
getColor(x);你明白了没?
是这个意思吗?type Minerals=(Ca,P,Mg,Cl,K,Na,Su,Co,Cu,I,Fe,Mn,Se,Zn,Mo,VitA,VitD,VitE);procedure TForm1.Button1Click(Sender: TObject);
var
mm: Minerals;
mCount: integer;
begin
mCount := 0;
for mm:= Ca to Vite do
Inc(mCount); ShowMessage(IntToStr(mCount)); //18
end;
var
i,nCount:integer;
begin
nCount:=Integer(High(Minerals)); //元素数量,后面要+1,这里是用来从0开始循环,所以没有加
for i:=0 to nCount do //列出所有元素
ShowMessage(GetEnumName(TypeInfo(Minerals),i));
end;