delphi的结构类型有很多种,有一种叫集合类型,
定义方式是
type
name = set of basetype
这里有一个例子
type
number = set of 1..20
定义了一个集合类型number,基类是子界类型,元素为1到二十的整数如果你想输出你集合类型的数据就要
var
nu : number;
begin
number := 1;
但这是错的
查资料写的是要用
var
nu : number;
i : integer;
begin
i := 1;
if i in nu then
showmessage(i);
end;
但是如果我想输入全部数据呢,我加了一个edit组件,是这样写的
begin
for i:= 1 to 20 do
begin
if i in nu then
Edit1.Text := edit1.text + IntToStr(i);
end;
end;
运行起来是edit里什么都不显示.
如果我改为edit1.text := inttostr(i);
并单个控制i的数,从20一直试验到1,运行结果是可以显示20..6, 但6到1的数就不会显示,为什么呀我问了很多程序员,也不能说出所以然来,希望在这上面能遇见真人也
定义方式是
type
name = set of basetype
这里有一个例子
type
number = set of 1..20
定义了一个集合类型number,基类是子界类型,元素为1到二十的整数如果你想输出你集合类型的数据就要
var
nu : number;
begin
number := 1;
但这是错的
查资料写的是要用
var
nu : number;
i : integer;
begin
i := 1;
if i in nu then
showmessage(i);
end;
但是如果我想输入全部数据呢,我加了一个edit组件,是这样写的
begin
for i:= 1 to 20 do
begin
if i in nu then
Edit1.Text := edit1.text + IntToStr(i);
end;
end;
运行起来是edit里什么都不显示.
如果我改为edit1.text := inttostr(i);
并单个控制i的数,从20一直试验到1,运行结果是可以显示20..6, 但6到1的数就不会显示,为什么呀我问了很多程序员,也不能说出所以然来,希望在这上面能遇见真人也
nu := [1,2,3,4,5]; // 设集合初值,也可以设为空集 nu := []; for i:= 1 to 20 do
begin
if i in nu then
Edit1.Text := edit1.text + IntToStr(i);
end;
end;