我们公司准备在元旦晚会上举行一次抽奖活动,公司现在要我做个系统来实现它,功能是:每点击一下“抽奖”按钮,就会显示出一个员工的ID号,也就是中奖人的卡号,为了公平起见,下次再点击“抽奖”按钮时,上次产生的ID号在下次不再产生,也就是说下次点击产生的ID号只能是从没有产生过的ID号中产生,请问怎么在DELPHI里编程实现,我把所有员工的ID号(00001-09999)极相关的情况全
都输入数据表RS里了。如果能把写好的程序发给我那就更好了,我的QQ是363054249,MAIL:[email protected],盼望中。程序出来马上放分!!
都输入数据表RS里了。如果能把写好的程序发给我那就更好了,我的QQ是363054249,MAIL:[email protected],盼望中。程序出来马上放分!!
解决方案 »
- 获取form的handle是出错,Access violation at address 00456F5F in module
- 请教大家我要显示表格样式的,用什么VCL好呢?StringGird?
- 急!!在线等!!!
- 请问那里有windows 95 的安装程序?我的分不多了,答对者每人十分吧!谢谢了!
- 感谢风焱老大一直以来无私帮助我,回答我的问题。。。散分,大家一起up
- [急急急!!!]关于对表中字段名有选择的DBGrid中显示的问题???
- 谁能解决这个问题?(100分)
- fastreport
- 删除当前目录下所有文件的方法?
- 难道没有delphi写的像金山词霸屏幕取词的举例4?66分
- 紧急:socket多线程编程
- 谁了解delphi吗,今天发现一个很怪的问题.delphi7.0下.
PRec = ^TRec;
TRec = record
ID: String;
Name: String;
//还可扩展其他信息
end;建立一个全局变量:
var
recList: TList;在需要装入员工ID的事件里:
var
Rec: PRec;
begin
If not Assigned(recList) then
recList := TList.Create;
……
while not Query.Eof do //遍历记录集把相关信息装入指针链表recList中;
begin
New(Rec);
Rec^.ID := Query.FieldByName('ID').AsString;
Rec^.Name := Query.FieldByName('Name').AsString;
Query.Next;
end;开始抽奖;
var
i: Integer;
LuckID: String;
begin
Randomize;
i := Ramdom(recList.Count);
//下面得到了幸运ID
LuckID := PRec(recList.Items[i])^.ID;
LuckName := PRec(recList.Items[i])^.Name;
//然后删除该指针,避免下次重复抽取
dispose(PRec(recList.Items[i]));
recList.Delete[i];
//抽奖成功,可以继续下次抽奖!
end;最后不要忘记释放这个指针链表!
while recList.Items[0] <> nil then
begin
dispose(PRec(recList.Items[i]));
recList.Delete[0];
end;
while recList.Items[0] <> nil then
begin
dispose(PRec(recList.Items[0]));
recList.Delete[0];
end;
2.显示滚动过程:随机显示员工中任意iD
3.正式抽取:产生一个随机的链表位置(即数组下标),如果这个链表位置的员工没有被抽取过(非0),则取出作为幸运儿,否则产生下一个;取出后标记为被抽取过(置0)。程序已经发到邮箱
我也希望有人免费帮我干点活,工作量不大!!!!
无语了……
现在的年轻人……
还是你细心啊!!!
說得有道理,想得周到,但我有個這樣的顧慮:那我這個程序具不是只能用一次,或許我們公司明年,后年
還要用這個程序那怎么辦呢。