Red de conocimiento informático - Computadora portátil - ¿Cómo implementar subprocesos múltiples en DELPHI? pregunta extraña

¿Cómo implementar subprocesos múltiples en DELPHI? pregunta extraña

unidad bncthrd;

interfaz

usa

winprocs,clases,gráficos,extctrls;

tipo

tbouncethread =clase(tthread)

privado

fshape:tshape;

fxspeed:integer;

fyspeed:

procedimiento moveshape;

procedimiento protegido

ejecutar;anular;

público

constructor create(suspended:boolean;shape:tshape; xspeed,yspeed:integer);

propertyshape:tshapereadfshape;

end;

implementación

procedimiento tbouad.maxwidth: integer;

comenzar

con fshape hacer

comenzar

izquierda:=izquierda+fxspeed;

arriba:=arriba +fyspeed;

si(izquierda=0) o(izquierda+ancho=parent.width)entonces

fxspeed:=fxspeed*-1;

si (arriba=0) o (arriba=altura+parent.altura)entonces

fyspeed:=fyspeed*-1

end;

end;

procedimiento tbouncethread.execute;

comenzar

mientras no esté terminado,

comenzar

sincronizar(); /p>

tbouncethread.movhape);

end;

end;

constructor tbouncethread.create(suspended:boolean;shape:tshape;

xspeed,yspeed.integer);

comenzar

creación heredada (suspendida);

fshape:=shape;

fxspeed:=xspeed;=xspeed;{velocidad del eje x}

fyspeed:=yspeed;{velocidad del eje y}

freeonterminate:=true;

end;

end.

Después de hacer esto, podemos crear un nuevo programa y agregar la unidad bncthrd anterior en la sección de usos y luego agregar dos formas en su forma1 Controles forma1 y forma2, 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.

unidad Unidad1;

interfaz

usa

bncthrd,Windows, Mensajes, SysUtils, Clases, Gráficos, Controles, Formularios, Diálogos ;

Tipo

Tipo

Este es el código que hace que el rectángulo y el círculo se muevan. p>tipo

TForm1 = clase(TForm)

Forma1: TShape;

Forma2: TShape;

Botón1: TButton;

procedimiento Botón1Clic( Remitente: TObject);

privado

{ Declaraciones privadas }

público

{ Público declaraciones }

end;

var

Form1: TForm1;

Implementación

{$R *. DFM}

procedimiento TForm1.Button1Click(Sender: TObject);

comenzar

tbouncethread.create(false,shape1,1,2);

tbouncethread.create(false,shape2,2,3);

end;

end.