随机取listbox内容有关问题
随机取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;
------解决思路----------------------
对呀,所以楼主和一楼那样取随机数就不对了。
------解决思路----------------------
如果:
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.
有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;
------解决思路----------------------
对呀,所以楼主和一楼那样取随机数就不对了。
------解决思路----------------------
如果:
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.