如何让线条动起来

dfsdf36 2003-10-15 09:23:13
编了一段程序,想看看插入法排序的过程,但是看到只是结果。
代码如下:
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
SetLength(unit1.ary,Image1.Width);
for i:=0 to form1.Image1.Width-1 do
begin
form1.Image1.Canvas.MoveTo(i,0);
unit1.ary[i]:=100-round(100*random);
form1.Image1.Canvas.LineTo(i,unit1.ary[i]);
end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,j,k,l,t:integer;
begin
l:=form1.Image1.Width;
for i:=1 to l-1 do
begin
t:=unit1.ary[i];
for j:=1 to i do
begin
if t>unit1.ary[i-j] then break;
unit1.ary[i-j+1]:=unit1.ary[i-j];
///
form1.Image1.Canvas.Rectangle(i-j,0,i-j+1,form1.Image1.Height);
form1.Image1.Canvas.MoveTo(i-j,0);
form1.Image1.Canvas.LineTo(i-j,unit1.ary[i-j]);
form1.Image1.Canvas.MoveTo(i-j+1,0);
form1.Image1.Canvas.LineTo(i-j+1,unit1.ary[i-j+1]);
//SysUtils.Sleep(10);
form1.Canvas.TextOut(0,i,'~');
///
end;
unit1.ary[i-j+1]:=t;
end;

///
form1.Image1.Canvas.Rectangle(0,0,form1.Image1.Width,form1.Image1.Height);
for k:=0 to l-1 do
begin
form1.Image1.Canvas.MoveTo(k,0);
form1.Image1.Canvas.LineTo(k,unit1.ary[k]);
end;
//SysUtils.Sleep(10);
///
end;
...全文
160 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jpyc 2003-10-16
  • 打赏
  • 举报
回复
http://218.56.11.178:8020/web/index.aspx

->软件基地->源码-》delphi/kylix->蚂蚁线(装饰线)
nyf1220 2003-10-16
  • 打赏
  • 举报
回复
看看《渗透delphi》里,在多线成里有个例子
dfsdf36 2003-10-15
  • 打赏
  • 举报
回复
是不是要用refresh方法?

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧