終わり;
終わり;
手順TBounceThread。実行する;
始める
終了していない間は終了します
始める
同期(MoveShape);
終わり;
終わり;
コンストラクターTBounceThread。 Create(一時停止: ブール値; 形状: TShape; XSpeed、YSpeed: 整数);
始める
継承された作成(一時停止);
F形状: Κ形状;
FXSpeed: ΚXSpeed {X 軸速度}
FYSpeed:KYSpeed{Y軸方向の速度}
FreeOnTerminate:ΚTrue;
終わり;
終わり。
これはマルチスレッドのバンパー ボール ゲームで、異なるスレッドに属する複数の異なるボールを画面上で独立して衝突させることができます。明らかに、複数のボールが走っている様子を表示すると VCL リソースが同時に操作されるため、安全のために、Execute プロセスの実行部分に Synchronize (MoveShape) を追加して、VCL リソースが必要とする場所で実際に Move-Shape プロセスを呼び出します。フォームやビットマップなどの操作対象のファイルは、Synchronize 呼び出しに追加する必要があります。
実行時に、新しいプログラムを作成し、USES セクションに上記の BncThrd ユニットを追加し、そのフォームに 2 つの Shape コントロール Shape1 と Shape2 を追加します。Shape1 は長方形、Shape2 は円になります。次のコードを追加して、長方形と円を移動させます。
プロシージャTForm1. Button1Click(送信者: TObject);
始める
TBounceスレッド。 Create(False,Shape1,1,2);
TBounceスレッド。 Create(False,Shape2,2,3);
終わり;
著者のブログ: http://blog.csdn.net/zou5655/