demineur clic droit C++ - C++ - Programmation
Marsh Posté le 09-04-2006 à 22:26:52
Gère l'évènement OnMouseUp sur le DrawGrid, Tu peux recalculer la cellule à partir des coordonnées X et Y de la souris avec la méthode void __fastcall MouseToCell(int X, int Y, int &ACol, int &ARow);
Marsh Posté le 10-04-2006 à 14:56:46
Trap D a écrit : Gère l'évènement OnMouseUp sur le DrawGrid, Tu peux recalculer la cellule à partir des coordonnées X et Y de la souris avec la méthode void __fastcall MouseToCell(int X, int Y, int &ACol, int &ARow); |
J'ai deja tente cette solution que j'avais deja trouve sur le net. En fait il me manque des instructions pour que ca puisse marcher et ca me pose toujours des problemes.
Marsh Posté le 10-04-2006 à 14:59:52
void __fastcall TForm1::DrawGrid1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button == mbRight)
{
int Column;
int Row;
DrawGrid1->MouseToCell(X, Y, Column, Row);
StatusBar1->SimpleText = IntToStr(Column) + ',' + IntToStr(Row);
}
C'est un morceau de programme que j'ai trouvé sur le net pour faire fontionner le clic droit de la souris mais le statusbar1 il me pose des probleme car il est pas reconnu.
Marsh Posté le 13-04-2006 à 00:42:18
Bigdai a écrit : void __fastcall TForm1::DrawGrid1MouseDown(TObject *Sender, |
Normalement avec X et Y, tu dois trouver la case où se situe le pointeur de la souris. Je ne me souviens pas pourquoi j'ai fait le calcul de l'emplacement de la case plutôt que d'utiliser MouseToCell(). La barre d'état ne sert que pour indiquer cette position (Column et Row). Ci-dessous un exemple de traitement du clic droit qui fonctionne en BCC 6.
Code :
|
Marsh Posté le 14-04-2006 à 12:35:07
J'ai essayé le programme mais ca ne marche pas.
Il me dit que lg n'est pas défini et je ne vois pas comment le définir.
Marsh Posté le 14-04-2006 à 12:51:39
Ca passe mais lorsque je fais un clic droit il me fait une erreur par rapport à la grille et il debug.
Marsh Posté le 14-04-2006 à 22:01:36
C'est vrai que la partie la plus importante du programme est appelée par l'événement OnDrawCell. On peut ignorer " lg " si on utilise MouseToCel.
Marsh Posté le 17-04-2006 à 22:52:08
C'est bon.
Problème résolu. J'ai réussi à faire marcher le clic droit.
Merci à tous ceux qui m'ont aidé à le faire.
Marsh Posté le 09-04-2006 à 22:14:32
Salut à tous
Je suis un newbie concernant la programmation. Je dois réaliser pour un projet info, un démineur, je le réalise avec le logiciel builder 5.
J'utilise pour ca une drawgrid mais je n'arrive pas a mettre en place le clic droit de la souris pour faire apparaitre le drapeau.
J'ai fait pas mal de recherche à ce niveau mais toutes les solutions que j'ai trouvé ne m'ont pas permise de résoudre le problème.
Merci d'avance pour votre aide.