首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

随机取listbox内容有关问题

2012-12-31 
随机取listbox内容问题有listbox1和listbox2两个控件,随机取listbox1内容加到listbox2中,同时删除listbox1

随机取listbox内容问题
有listbox1和listbox2两个控件,随机取listbox1内容加到listbox2中,同时删除listbox1中的相应内容,randomize;
    i:=random(listbox1.items.count-1);
   ……
    listbox2.Items.add(listbox1.items[listbox1.itemindex]) ;
   ……
为什么listbox1中的最后一组数据总是取不到(除非将listbox1内容全部取到listbox2中),就是剩菜2行也随机不到它? 
[解决办法]
 i:=random(listbox1.items.count+1);

[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  if listbox1.items.count<1 then exit;
  i:=random(listbox1.items.count);
  listbox2.Items.add(listbox1.items[i]);
  listbox1.Items.Delete(i);
end;

[解决办法]

引用:
random(n)不是随机0~n之间的整数么。。

对呀,所以楼主和一楼那样取随机数就不对了。
[解决办法]
如果:
var x,n: integer;
x := random(n);
则:
 0 <= x < n 
delphi的帮助里是这样描述的:

Description
In Delphi code, Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range
0 <= X < 1.

热点排行