求: Delphi 随机数字不重复代码

求:Delphi从1到100之间随机出10个数字,分别写到10个Edt文本框里,每个文本框的数字不能重复求详细代码谢谢... 求: Delphi 从 1到100之间 随机出10个数字,分别写到10个Edt文本框里 ,每个文本框的数字不能重复 求详细代码 谢谢 展开
 我来答
caseyou4ever
2012-12-22 · TA获得超过456个赞
知道小有建树答主
回答量:583
采纳率:0%
帮助的人:304万
展开全部

在窗体上放一个按钮。

var   top1:integer=1;  //全局变量,控制动态生成的EDIT的top。

procedure TForm1.Button1Click(Sender: TObject);  //按钮的onclick事件

VAR edit:array[0..9] of tedit; 

  a:Tstringlist;

  tmp:integer;

  i,j:integer;

begin

  a:=Tstringlist.Create;

  try

  for i:=0 to 9 do

  begin

    repeat

      tmp:=RandomRange(1,100);

    until a.IndexOf(inttostr(tmp))<0;  //生成随机数,知道列表中找不到该随机数

    a.Add(inttostr(tmp));     //将当前随机数加入到列表中

    edit[i]:=TEdit.Create(self);   //以下代码动态生成edit;并在其中显示当前随机数

    edit[i].Parent:=self;

    edit[i].width:=20;

    edit[i].top:=25 * top1;

    edit[i].left:=22 * i;

    edit[i].Text:=inttostr(tmp);

  end;

  finally

     a.free;

  end;

  top1:=top1+1;

 

end;

 

liu55721
2012-12-22 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:878万
展开全部
简单洛,把随机数据保存在一个列表中,每产生一个随机数,就和列表中已经存在的对比一次,如果有就不再保存,而且也不把它赋值给edit组件,接着再随机一下.再检查是否重复
追问
思路我也懂,但是我是新手,在学习中的,所以代码和语法不懂..才求详细代码.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
txgaoyanan
2012-12-22 · TA获得超过139个赞
知道答主
回答量:163
采纳率:0%
帮助的人:47.8万
展开全部
使用列表、集合对象,先填充进去,用随机数获取一个索引,然后移除这个项,再获取下一个随机索引,以此类推。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式