Mousedown [Résolu]

tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 17:26 - Dernière réponse : Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention
- 11 janv. 2012 à 07:13
Salut,voila j'ai un problème j’affiche une image dans le form de mon projet avec mousdown j'aimerais que quand on lcique a tel endroit de cette image sa face tel chose,Le probleme et que qand on a x et y exemple je clique une fois pour avoir les cordonnée x 4524 et y 6060 bref je bouge a quelque centimettre je me retrouve avec d'autre cordonnée j'aimerais savoir si c'est pas possible d'avoir d'est cordonnée moins grande et avec des sorte de grille plus grosse en bref au lui d'avoir 4524 carreaux il y a na 32 carreaux mais plus gros ?
Afficher la suite 

Votre réponse

24 réponses

Meilleure réponse
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 9 janv. 2012 à 07:54
3
Merci
ouvre un nouveau projet

mets ce code dans le Form1

Option Explicit

Private Sub Form_Load()
Dim X As Long
Dim Y As Long
    '# On donne a la form la dimension de 800x600 pixels
    ScaleMode = vbTwips
    Width = ScaleX(800, vbPixels, vbTwips)
    Height = ScaleY(600, vbPixels, vbTwips)
    
    '# Ce 800x600 est la dimension de la Form toute entière, par uniquement celle de
    '# la zone cliente. Il faut donc prendre en compte cette différence (dimensions
    '# des bordures de la Form et de la barre de titres). ScaleWidth/ScaleHeight est la
    '# taille de cette zone cliente
    Width = Width + Width - ScaleWidth
    Height = Height + Height - ScaleHeight
    
    '# On souhaite un quadrillage personnalisé...
    ScaleWidth = 20
    ScaleHeight = 15
    
    '# On dessine ledit quadrillage
    Me.AutoRedraw = True
    For Y = 1 To ScaleHeight
        Line (0, Y)-(ScaleWidth, Y), vbBlack
    Next Y
    For X = 1 To ScaleWidth
        Line (X, 0)-(X, ScaleHeight), vbBlack
    Next X
    Set Me.Picture = Me.Image
    Me.AutoRedraw = True
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static prevX As Long
Static prevY As Long
    '# Les coordonnées 'brutes' suivies de l'indice de la case survollée
    Me.Caption = X & " ; " & Y & "        " & Fix(X) & " ; " & Fix(Y)
    X = Fix(X)
    Y = Fix(Y)
    
    '# Ce test permet d'optimiser un peu la chose, ne redessinant que si nécessaire...
    If prevX <> X Or prevY <> Y Then
        prevX = X
        prevY = Y

        '# On mets en rouge la case survollée, si elle a changé
        Cls
        Line (X, Y)-(X + 1, Y + 1), vbRed, BF
        Line (X, Y)-(X + 1, Y + 1), vbBlack, B
    End If
End Sub



testes

et repiques les idées

c'est ce qu'a tenté de te faire comprendre ucfoutu, mais tu n'est pas très attentif apparemment

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de Renfield
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 janv. 2012 à 17:42
0
Merci
Bonjour,

Tes explications ne sont pas vraiment claires.

Il est vraisemblable (probable) que tu aies à t'intéresser de près (ton aide VB6) à ,la propriété ScaleMode, ScaleWidth et ScaleHeight ainsi qu'aux fonctions Scalex, Scaley et TwipsPerPixelx et TwipsperPixely.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 17:50
0
Merci
Désole mais je sais pas trop m'exprimer correctement sur le probleme je vasi faire un exemple peut etre sa sera plus claire :

1 -
Tu a donc mousedown quand je clique deux fois un au dessu l'autre maffiche une fois
1552 et la deuxiemen fois 1780

sa c'est le probleme

2 -
Tu a donc mousedown quand je clique deux fois un au dessu l'autre maffiche une fois
25 premier fois
25 deuxieme fois
en bref que les carreaux soit plus grand que quand je selectionneavec un click quelque chose que sa m'affiche les bonne cordonnée donc le code ce lance

voici une image pour être plus claire
[img]http://img192.imageshack.us/img192/6896/sanstitrexz.png[:img]
Voila a droite le probleme
a gauche la solution possible
Commenter la réponse de tonyledragon
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 17:51
Commenter la réponse de tonyledragon
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 janv. 2012 à 17:54
0
Merci
1) dis-nous quel est le Scalemode en cours
2) montre ton code


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 17:58
0
Merci
Justement j'ai aucun code mon but la et simplement de créer un codee pour agrandire les case du mousedown
Commenter la réponse de tonyledragon
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 janv. 2012 à 18:01
0
Merci
C'est alors incompréhensible pour moi (ce que tu cherches à faire).
Et ce d'autant que tu dis qu'il s'agit d'un contrôle image.
Désolé.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 18:06
0
Merci
Bon je vasi ressayer j'ai regarde le scalemode sa corespond presque a se que je veux masi c'ets pas exactement sa je vais ressayer de m'expliquer plus correctement

en bref je chercher a faire une sorte de grille avec chacun leur numero respectif x et y

en bref
nous avons la case y1 x1 mais cette case vaux de 0 a 1024x et de 0 a 2455 y tu voie se que je veux dire

en bref au lieu me donnée les cordonnée de 0 a 1000 il me donne directement ma case x1 et y 1
c'est un sorte de scalemode mais en plus grand c'est un sorte de tableaux 32/32
et que quand on clique dans un case sa donne un chiffre de 1 a 32
pas un chiffre de 1 a 70
Car le scalemode change juste la valeur pixel pouce etc
moi je cherche pas a changer sa mais a dire en bref
exemple en pixel
ma case X 1 Y 1 = pixel 0 a 152
Commenter la réponse de tonyledragon
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 8 janv. 2012 à 18:12
0
Merci
Salut

Oui, les x et y changent à cause de la précision de du pointage.
Alors "sa c'est le probleme"
Quel résultat voudrais-tu voir ?
Tu parles de "coordonnées moins grandes", on dira moins sensible : ucfoutu t'a donné la solution avec ScaleMode.

Pour au point n° 2 de ta deuxième explication, c'est du charabia, cela ne veut rien dire.
Que ça t'affiche deux fois de suite '25' alors que tes x et y sont des chiffres bien plus grands. Comment passe t-on de l'un à l'autre ?

Des carreaux : enfin, tu parles d'une grille. Il faut attendre la fin pour savoir de quoi tu parles !
ScaleMode est, là aussi, la meilleure solution.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 janv. 2012 à 18:14
0
Merci
Je ne sais pas ce que tu appelles des "cases", mais commence à me demander si ru ne veux pas tout simplement parler des déplacements faits à l'aide de la souris pour positionner un contrôle (quel que soit ce contrôle)en IDE
.
Si c'est cela : non, VB ne peut "affiner" ces déplacements à l'aide de la souris, mais tu peux le faire (affiner) à l'aide des propriétés Left et Top, dans la fenêtre des propriétés.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 18:14
0
Merci
salut j'ai trouve sa je pense que sa pourrez corespondre car j'essaye de chercher un code pour faire mon systeme voici le code
 nX = (X / imgBoard.Width) * 10
    nY = (Y / imgBoard.Height) * 10
Commenter la réponse de tonyledragon
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 18:17
0
Merci
Désoler j'avez pas vue vos message bref voila donc vous avez comprit le probleme donc la resolution mon probleme j'aimerais que les x et y soit plus grand que par exemple 10 petit carreaux movedown donne X1 Y 1
Commenter la réponse de tonyledragon
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 janv. 2012 à 18:20
0
Merci
Totalement incompréhensible (je dois avoir trop vieilli en dépit de mes efforts pour rester jeune).
J'abdique donc tant que le vocabulaire utilisé restera ce qu'il est.



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 18:23
0
Merci
Non mais c'est moi qui et trop c.. pour explique correctement
Bref scalemode en pixel c'est deja mieux ce je veux en bref c'est créer une sorte de grille par dessus et que une case de cette grille et = a environ 10 pixel
Donc on va dire un exemple
je clique sur un personnage ma grille affichera X 10 Y 10 en bref en pixel normal sa donnerais un chiffre entre 100 et 90
Commenter la réponse de tonyledragon
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 18:28
0
Merci
Bon voila je ressaye encore je perd pas espoir donc 1 pixel egal le carre rouge(cest un exemple)
Moi ce que j'aimerais c'est avoir donc en bref comme le carrée vert donc exemple 32 pixel dans 1 carre vert qu'il egal donc X 1 donc une grille agrandit ^^
Bref j'aimerais agrandir les zone pour quelle soit plus facile par exemple le dragonnet noir en bas j'aimerais que si je clique dessu j'ai pas 45 fois des nombre de pixel different qu'il s'affiche jaimerais qu'il affiche juste carre du dragonnet noir X1 y 3 c'est un exemple
Commenter la réponse de tonyledragon
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 18:30
0
Merci
En bref le carre vert quand je clique dessus il me dira les cordonnée X 25 et Y 15 dans toute la zone du carrée vert que le carrer rouge et si petit que si je bouge un peut a gauche ou droit il me donnera jamais la meme valeur
Commenter la réponse de tonyledragon
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 janv. 2012 à 18:30
0
Merci
Ecoute (dernière tentative)

si en ide : déjà dit
si en run : Scalemode, scalex, scaley et éventuellement twipsperpixelsx et twipsperpixelsy seront à utiliser. J'ignore ce que sont "grille" et "carreaux"
Bonne chance.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 18:43
0
Merci
J'ai trouve
DrawWidth = Val(txtEpaisseur.Text)

ceci marche sa me permet d'avoir plusieur pixel selectionnée bref merci m'avoir aider je sais je suis dur a comprendre
Commenter la réponse de tonyledragon
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 8 janv. 2012 à 19:44
0
Merci
Tu as "trouvé" ...
Mais j'ignore comment tu as pu faire (c'est vraiment un mystère) le lien entre la propriété Drawwidth et le déplacement d'un contrôle image.
Une seule explication possible : le mystère a ses raisons que la raison ne connaît pas. A moins que, depuis le tout début, tu n'aies cherché à exprimer autre chose que ce que tu as exprimé !
Mais si tu as "trouvé" (quoi en fait ?), bravo.



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
tonyledragon 173 Messages postés lundi 2 mai 2011Date d'inscription 13 décembre 2012 Dernière intervention - 8 janv. 2012 à 20:22
0
Merci
Fause joie,en faite c'est avec un systelme de dessin j'ai trouves c'ets commande mais bon sa marche pas mais j'ai trouvé un autre système pour faire fonctionné tout sa

J'ai mit la X le plus loin du personnage au plus pré de lui pareil pour y donc quand tu clique par la zone délimité ben sa marche :p
Commenter la réponse de tonyledragon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.