Bonjour tout le monde,
Voilà, tout est dit. Quand je faisais du VB.Net il suffisait de rajouter <composant>.<événement> après la clause Handles. Mais après moultes recherches en Delphi, je ne trouve pas
Merci d'avances
Bonne soirée
Bonjour tout le monde,
Voilà, tout est dit. Quand je faisais du VB.Net il suffisait de rajouter <composant>.<événement> après la clause Handles. Mais après moultes recherches en Delphi, je ne trouve pas
Merci d'avances
Bonne soirée
C'est pas très précis, mais tu peux affecter dynamiquement les évènements comme ceci:
Si tu As
tu peux affecter a un autre bouton de cette manière
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 procedure TForm.BitBtn1Click(Sender:TObject); begin // end;
En fait tu peux faire cela, avec une méthode de ton cru, pas forcément défini avec le 1er bouton...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3begin ... UnAutreBouton.OnClick := BitBtn1Click;
Le principal étant que la méthode affecté soit exactement du même prototype que les méthodes affectées habituellement aux évènements concernés
Facile .
En mode désign (avant de compiler) tu peux aller dans l'onglet Événements de l'inspecteur d'objets et sélectionner l'événement désiré dans la liste à droite de l'événement qui doit être géré.
Si tu veux le faire en code, il suffit d'indiquer à la propriété événement de l'objet quelle méthode doit être exécutée lors du soulèvement de l'événement.
Bon dev!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 TForm1 = class(TForm) btn1: TButton; btn2: TButton; procedure btn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btn1Click(Sender: TObject); begin Showmessage('Click de bouton!'); end; procedure TForm1.FormCreate(Sender: TObject); begin btn2.OnClick := btn1Click; //On assigne l'événement OnClick de btn1 à btn2 end;
[EDIT]
TicTacToe a été plus rapide
slimjoe qq sec on dirait
J'ajouterai, que tu n'es pas obligé de faire cela par code, mais que l'on peut tout a fait "repiquer" la méthode Click du bouton 1 et l'affecter dans l'inspecteur d'objets/ onglet évènement sur la méthode 'OnClick' du bouton 2.
-> La liste déroulante te présentera toute les méthodes candidates et compatible pour ton bouton2 -> donc la méthode BitBtnClick du bouton1.
Salut
Attention toutefois, il faut que les types d'évènements soient identiques.
Exemple:
Tu ne peux pas assigner un OnClick (de type TNotifyEvent) à un OnKeyPress (de type TKeyPressEvent).
Merci bcp à vous 3 d'avoir répondu si vite!
C'est ce que je voulais savoir, merci.
Mais en fait, je fais un morpion donc j'ai 9 Images et dès que je clique sur une des images je voudrais appeler la procédure événementielle qui met une croix ou un rond.
Mais le nom de l'image est en dur dans le code et je vois pas comment faire...SI vous avez une idée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TformClient.Image1Click(Sender: TObject); begin Image1.Picture.LoadFromFile('croix.jpg'); end;
Je ne comprends pas bien pourquoi ça pose un problème...Envoyé par eultartuffe
ou est le 3éme?? je vois que 2 personEnvoyé par eultartuffe
c'est qoi morpion ??Envoyé par eultartuffe
chaque objet à une propriété "tag", aussi pour tes 2 imagesEnvoyé par eultartuffe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 const MesImage:array[1..2] of string=('image1.bmp','image2.bmp');
C'est moi: le modo qui restaure ses posts plus vite que son ombreEnvoyé par edam
http://fr.wikipedia.org/wiki/Morpion_%28jeu%29Envoyé par edam
Sinon, pour en revenir au problème initial, voila ce que je ferais:
Afficher un TImage avec les 4 traits du plateau. Avec l'évènement OnMouseDown, tu récupères les coordonnées du click et avec ces coordonnées, tu calcules la case cliquée.
Un tableau de 3x3 où chaque case aurait 3 états: vide, croix et rond. Avec la case cliquée, tu renseignes correctement ce tableau.
Dans le OnPaint du TImage, avec le tableau, tu dessines ce qu'il faut:
rien (c'est le plus facile
une croix (MoveTo et LineTo)
un rond (DrawEllipse)
Et voila
OK merci j'aurais pas penser à ça...C'est pas bête du tout!
Mais par contre je vois pas comment je peux calculer quelle case on sélectionne... (Je suis débutant j'avais oublié de le signaler )
A moins que dans le tableau je renseigne la position de la case sur la TImage?
MerciEnvoyé par eultartuffe
Ben c'est assez simple:Envoyé par eultartuffe
ONMouseDown renvoit les coordonnées X et Y de la souris au moment du click. Ensuite, il te suffit de tester si le curseur est dans telle ou telle case. Cela pourrait donner ceci:
Dans le cas où les lignes verticales du plateau sont à X=10 et X=20 sur l'image. Ensuite, tu fais pareil pour la ligne et tu as la case cliquée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if X < 10 then //Première colonne else if (X > 10) and (X < 20) then //Seconde colonne else //Troisième colonne
Daccord merci bcp je vais essayer ça
Si ton problème est résolu, clique sur Merci.Envoyé par eultartuffe
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager