前些日子写了一个十六进制分析处理程序,有一个部分需要获取16个复选框的状态用来设置处理哪一列的数据,然后就觉得用集合类型,这个类型可能只有Pascal语言才有,所以C可能是不是用的,可以用一个验证模块将选择的复选框加入集合,然后只要将集合传送给函数,当需要判断当前数据是不是要处理的时候,只要判断Data is ZY_ream就可以了,很方便。当然我想还有很多妙用,希望在这里抛砖引玉。
------------------------------------------------------------------------------------
procedure TMain.zybtnClick(Sender: TObject); //字源搜索按钮
type
F_team=set of 0..15; //定义搜索组集合类型
var
zy_team:f_team;//定义f_team集合类型
begin
zy_team:=[];//清空子集;
if zy_a0.Checked then //如果选择0组,则将0添加到集合
zy_team:=zy_team+[0];
if zy_a1.Checked then
zy_team:=zy_team+[1];
if zy_a2.Checked then
zy_team:=zy_team+[2];
if zy_a3.Checked then
zy_team:=zy_team+[3];
if zy_a4.Checked then
zy_team:=zy_team+[4];
if zy_a5.Checked then
zy_team:=zy_team+[5];
if zy_a6.Checked then
zy_team:=zy_team+[6];
if zy_a7.Checked then
zy_team:=zy_team+[7];
if zy_a8.Checked then
zy_team:=zy_team+[8];
if zy_a9.Checked then
zy_team:=zy_team+[9];
if zy_a10.Checked then
zy_team:=zy_team+[10];
if zy_a11.Checked then
zy_team:=zy_team+[11];
if zy_a12.Checked then
zy_team:=zy_team+[12];
if zy_a13.Checked then
zy_team:=zy_team+[13];
if zy_a14.Checked then
zy_team:=zy_team+[14];
if zy_a15.Checked then
zy_team:=zy_team+[15];