fin;
fin;
ProcedimientoTBounceThread. Ejecutar;
comenzar
Mientras no esté terminado
comenzar
Sincronizar(MoveShape);
fin;
fin;
constructorTBounceThread. Crear(Suspendido: Booleano; Forma: TShape; XSpeed, YSpeed: Entero);
comenzar
heredadoCrear(Suspendido);
Forma F: Forma Κ;
FXSpeed: ΚXSpeed; {velocidad del eje X}
FYSpeed: ΚYSpeed; {Velocidad de la dirección del eje Y}
FreeOnTerminate:ΚVerdadero;
fin;
fin.
Este es un juego de pelota parachoques de múltiples subprocesos. Puedes tener varias bolas diferentes, que pertenecen a diferentes subprocesos y chocan en la pantalla de forma independiente. Obviamente, dado que la visualización de varias bolas en ejecución operará recursos VCL al mismo tiempo, por seguridad, agregamos Sincronizar (MoveShape) en la parte de ejecución del proceso Ejecutar para llamar al proceso MoveShape. De hecho, donde sea que se necesiten recursos VCL. a operar, como formularios y mapas de bits, deben agregarse a la llamada Sincronizar.
Al ejecutar, podemos crear un nuevo programa, luego agregar la unidad BncThrd anterior en la sección USOS y luego agregar dos controles de Forma, Forma1 y Forma2, a su forma. Forma1 puede ser un rectángulo y Forma2 es un círculo. Agregue el siguiente código para hacer que el rectángulo y el círculo se muevan.
procedimientoTForm1. Botón1Clic(Remitente: TObject);
comenzar
TBounceThread. Crear (Falso, Forma1,1,2);
TBounceThread. Crear (Falso, Forma2,2,3);
fin;
Blog del autor: http://blog.csdn.net/zou5655/