动态生成N(N不确定)个PANEL,每行5个,panel上是一篇文章,正常顺序是这样显示的,文章按panel的顺序是可以连贯的读下去的:
panel1 panel2 panel3 panel4 panel5
panel6 panel7 panel8 panel9 panel11
........
现在我的客户要求乱排:
panel13 panel1 panel42 panel62 (随便举个例子)要求,任何一个PANEL,在这个PANEL左右,上下排列的序数都豪无关联,就向一篇文章写在PANEL上,然后打乱,有点类似以前玩的拼图游戏似的,把一个正常的图打乱 大家给看看,写个算法什么的,谢谢
panel1 panel2 panel3 panel4 panel5
panel6 panel7 panel8 panel9 panel11
........
现在我的客户要求乱排:
panel13 panel1 panel42 panel62 (随便举个例子)要求,任何一个PANEL,在这个PANEL左右,上下排列的序数都豪无关联,就向一篇文章写在PANEL上,然后打乱,有点类似以前玩的拼图游戏似的,把一个正常的图打乱 大家给看看,写个算法什么的,谢谢
解决方案 »
- 怎么解决reportbuilder对stringgrid的打印?
- 日期时间问题:怎么样以DateTimePicker的日期为条件来查询记录
- 又是Dataset not in edit or insert mode的问题
- IdFTPServer在有客户连接的情况下,如何中断服务关闭服务器?
- 存储过程!
- 怎样使软件加密?
- 中国式报表(ereport)控件的小BUG,哪位大侠能帮助解决???
- 怎样获得IE中的网站名称?
- 紧急求助: 关于在启动封面中使用ShockwaveFlash控件的问题!!
- 如何引用另一个UNIT中的变量或自定义函数?
- 递归表中所有字段名,怎么做,请教大家?,还有一个问题:怎么清出cxGrid1DBTableView1的显示
- 100分求完美解决DBGrid取消滚动条的方法
const N=40;
var a:array[0..N+1]of boolean;
i,m:integer;
MyPanel:TPanel;
begin
Randomize;
for i:=1 to N do a[i]:=False;
i:=0;
repeat
i:=i+1;
m:=Random(N+1);
while a[m] do m:=Random(N)+1;
a[m]:=true;
MyPanel:=TPanel.Create(self);
MyPanel.Parent:=Form1;
MyPanel.Width:=40;
MyPanel.Left:=40*i;
MyPanel.Caption:=Format('Panel%d',[m]);
MyPanel.Show;
until i>=N;
end;
自己再控制一下Left和Top