程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 多線程程序設計(2)

多線程程序設計(2)

編輯:Delphi
end;
  end;
  procedureTBounceThread.Execute;
  begin
  WhilenotTerminateddo
  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:TObject);
  begin
  TBounceThread.Create(False,Shape1,1,2);
  TBounceThread.Create(False,Shape2,2,3);
  end;
  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved