Académique Documents
Professionnel Documents
Culture Documents
Objectifs : Introduction au type enregistrement (record) Comprendre les Timer et leurs vnements OnTimer Gestion du clavier Nous aurons besoin dune fentre contenant
a) un composant Panel nomm terrain que lon pourra placer sans trop se soucier de sa taille sur la fentre :
fond noir (proprit brush.color ClBlack) remplit toute la zone client de la fentre (proprit align AlClient)
b) 2 composants TShape (forme gomtrique), lun pour la balle, lautre pour la raquette, nomms Raquette et Balle. Il est important quils soient placs dans le panel.
La proprit shape (forme) dun Tshape dfinit sa forme : stCircle, stEllipse. stSquare cercle, ellipse, rectangle, rectangle angles arrondis, carr angles arrondis ou carr. La proprit brush (brosse) dun Tshape dfinit laspect de son remplissage La proprit Pen (crayon) dfinit laspect celui de son contour. Raquette : Balle : Shape stRectangle, Shape stCircle, Brush.Color ClYellow Brush.Color ClRed Pen.color ClYellow Pen.color ClRed
tailles indicatives : fentre : 700 552 pixels terrain : 670 500 ; raquette : 80 17 ; balle : 25 25
c) de 2 composants Timer nomms TimerBalle et TimerRaquette dont la proprit Interval sera rgle sur 1
Page 2 sur 5
Principe : Les deux timers TimerBalle et TimerRaquette greront respectivement les mouvements de la balle et la position de la raquette.
Les proprits qui nous seront utiles sont : balle.left, balle.top, balle.width et balle.height (position gauche, haute, largeur, hauteur) Il faudra aussi grer son acclration en x et en y, sa position maximale droit et en bas. Nous pourrions dfinir un certains nombre de variables dans notre programme, mais Delphi (comme le langage C avec les struct) permet de crer des types de donnes personnaliss.
Page 3 sur 5 Imaginons que dans un programme nous ayons grer des personnes Nous pourrons simplement dfinir la personne par son nom, son prnom, son ge, sa taille, sa situation matrimoniale en crant des enregistrements de ces donnes.
Nous pourrons ensuite dfinir facilement des variable de type Tpersonne (Le T devant le nom dun type est une habitude de Delphi)
Page 4 sur 5 Notre programme sera bien plus simple grer si nous dfinissons les proprits de la balle et de la raquette en utilisant cette technique Commenons par la balle : Le type sera nomm TBalle. Notre balle, de type TBalle, sera nomme LaBalle. Nous pourrons modifier ses proprits, puis affecter ses coordonnes x et y aux proprits Left et Top du Tshape nomm Balle. Notre balle aura les proprits suivantes (champs de lenregistrement) : des coordonnes x et y une taille une vitesse en x et en y (qui peut tre positive ou ngative) des coordonnes maximales en x et y (les mini tant zro)
LaBalle.x LaBalle.y LaBalle.dx LaBalle.dy Notre type sera dclar en dbut dunit, avant la classe TForm1 :
Page 5 sur 5 Dclarons et initialisons notre balle Nous dclarons une variable globale de type TBalle
Nous initialisons les champs de notre variable la cration de la fentre (vnement OnCreate de la fiche)
Nous affichons la forme reprsentant la balle lcran en utilisant les coordonnes de LaBalle Faisons bouger notre balle : vous de travailler !!! chaque appel de la procdure OnTimer de TimerBalle, il faudra faire bouger la balle en ajoutant dx et dy aux positions x et y Si x < 0 alors dx sera invers (rebond) et on collera la balle gauche Si x > LaBalle.MaxX alors dx sera invers (rebond) et on collera la balle LaBalle.Max idem en y une fois les calculs effectus sur LaBalle, on mettra jour laffichage du composant balle