论坛风格切换切换到宽版
  • 5845阅读
  • 2回复

【原创】Delphi集合类型的妙用 [复制链接]

上一主题 下一主题
离线冯世磊
 

发帖
1212
金钱
20
威望
2
只看楼主 倒序阅读 0 发表于: 2006-02-07
前些日子写了一个十六进制分析处理程序,有一个部分需要获取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];
欢迎光临狂风软件:[kuangfeng.51vip.cn] 狂风BLOGhttp://fengshilei.51vip.cn
==============================
见他人行善,随之心生欢喜,称为随喜。《法华经.随喜功德品》载,听闻经典而随喜,次次累积,功德至大。《大智度论》则谓,随喜者的功德,胜于行善者本人。又随己所喜,亦称随喜,如布施时,富者施金帛,贫者施水草,各随所喜,皆为随喜。
离线firstrose
发帖
9
金钱
0
威望
0
只看该作者 1 发表于: 2006-03-17
1、TForm有Controls属性,Control有Tag属性。你不用,却在那里一个一个判断。那你给写100个判断看看?
2、集合在这里效率可能不是最高。如果项数比较多,可以考虑用Bit map或者string
离线netkool
发帖
61
金钱
0
威望
0
只看该作者 2 发表于: 2006-03-31
Tag属性是比较好用的