fim;
fim;
PRocedureTBounceThread. Executar;
começar
Embora não seja encerrado, faça
começar
Sincronizar(MoveShape);
fim;
fim;
construtorTBounceThread. Criar(Suspenso: Booleano; Forma: TShape; XSpeed, YSpeed: Inteiro);
começar
herdadoCriar(Suspenso);
FForma: ΚForma;
FXSpeed: ΚXSpeed; {velocidade do eixo X}
FYSpeed: ΚYSpeed; {Velocidade da direção do eixo Y}
FreeOnTerminate:ΚTrue;
fim;
fim.
Este é um jogo de bola abundante multithread. Você pode ter várias bolas diferentes, que pertencem a threads diferentes e colidem na tela de forma independente. Obviamente, como a exibição de várias bolas em execução irá operar recursos VCL ao mesmo tempo, por segurança, adicionamos Synchronize (MoveShape) na parte de execução do processo Execute para chamar o processo MoveShape, de fato, onde quer que os recursos VCL sejam necessários. a serem operados, como formulários e bitmaps, devem ser adicionados à chamada Synchronize.
Ao executar, podemos criar um novo programa, adicionar a unidade BncThrd acima na seção USES e, em seguida, adicionar dois controles Shape Shape1 e Shape2 ao seu formato FORM1 pode ser um retângulo e Shape2 é um círculo. Adicione o código a seguir para fazer o retângulo e o círculo se moverem.
procedimentoTForm1. Button1Click(Remetente: TObject);
começar
TBounceThread. Criar(Falso,Forma1,1,2);
TBounceThread. Criar(Falso,Forma2,2,3);
fim;
Blog do autor: http://blog.csdn.net/zou5655/