博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DELPHI下的多线程程序设计(2) (转)
阅读量:2500 次
发布时间:2019-05-11

本文共 991 字,大约阅读时间需要 3 分钟。

DELPHI下的多线程程序设计(2) (转)[@more@] 下的多线程 设计(2)
end;
  end;
  procedureTBounceThread.Execute;
  begin
  WhilenotTe nateddo
  begin
  Synchronize(MoveShape);
  end;
  end;
  constructorTBounceThread.Create(Suspended:Boolean;Shape:TShape;XSpeed,YSpeed:Integer);
  begin
  inheritedCreate(Suspended);
  FShape:ΚShape;
  FXSpeed:ΚXSpeed;{X轴走向的速度}
  FYSpeed:ΚYSpeed;{Y轴走向的速度}
  FreeOnTerminate:ΚTrue;
  end;
  end.
  这是一个多线程的碰碰球游戏,你可以有多个不同的球,它们分属不同的线程,各自独立的在屏幕上碰撞。显然,由于多个球运行的显示会同时操作VCL资源,为了 ,我们在Execute过程中的 部分加入了Synchronize(MoveShape)来 Move?Shape过程,实际上,在任何需要操作VCL资源的地方,例如窗体、位图,都应加入Synchronize调用。
  执行时我们可以新建一个程序,然后在USES部分加入以上的BncThrd单元,再在它的窗体FORM1上加入两个Shape Shape1和Shape2,Shape1可以是一个矩形而Shape2是一个圆。加入以下的代码就可以让矩形和圆动起来。
  procedureTForm1.Button1Click(Sender:T );
  begin
  TBounceThread.Create(False,Shape1,1,2);
  TBounceThread.Create(False,Shape2,2,3);
  end;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-975749/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-975749/

你可能感兴趣的文章
Linux iptables开放端口
查看>>
传输层(最重要)
查看>>
20159302《网络攻击与防范》第十周学习总结
查看>>
4. 控制脚本执行顺序
查看>>
SPOJ 3643 /BNUOJ 21860 Traffic Network
查看>>
极速狂飙8 战记
查看>>
20155313 实验一《Java开发环境的熟悉》实验报告
查看>>
rpc简介、原理、实例
查看>>
php函数ob_start()、ob_end_clean()、ob_get_contents()
查看>>
Web Service 和WCF的比较
查看>>
sublime-text3打造markdown编辑器
查看>>
KMP——华丽丽的字符串
查看>>
Python:操作数据库mysql和 redis
查看>>
C# 概率性输出字符
查看>>
iOS开发使用Unwind Segue进行返回
查看>>
2013级学生两学期编程量统计
查看>>
POJ2352:Stars
查看>>
HTTP协议头部与Keep-Alive模式详解
查看>>
【linux】mysql安装问题 g++: not found
查看>>
Django之URL路由系统
查看>>