IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Free Pascal Discussion :

Problème de détection de la souris


Sujet :

Free Pascal

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Problème de détection de la souris
    Bonjour à tous,

    je suis nouveau sur ce forum et je l'ai parcouru, mais je n'ai trouvé aucune information concernant mon problème.

    Je cherche à gérer un menu dans la fenêtre texte avec la souris.

    Le problème est que je n'ai aucun retour quand je cherche à connaitre les valeur des GETMOUSEY et GETMOUSEBUTTONS.
    même les setmousexy,showmouse... ont l'air inactifs.

    voici le code concerné :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    pos := 1 ;
    x1 := 0  ;
    x2 := 0  ;
    x3 := 0  ;
    x4 := 0  ;
    x5 := 0  ;
    x6 := 0  ;
    x7 := 0  ;
     
    detectmouse                                                          ;
    InitMouse                                                            ;
    showmouse ;
    setmousexy(10,10)                                                      ;
    repeat
    ms1 :
    clrscr                                                               ;
    textbackground(15)                                                   ;
    textcolor(0)                                                         ;
    writeln('SELECTIONNEZ VOTRE UNITE :')                                ;
    writeln                                                              ;
    writeln                                                              ;
    writeln                                                              ;
    writeln('                                                                               ');
    textcolor(x1)                                                                             ;
    writeln('                             D5                                                ');
    textcolor(0)                                                                              ;
    writeln('                                                                               ');
    textcolor(x2)                                                                             ;
    writeln('                             Visco                                             ');
    textcolor(0)                                                                              ;
    writeln('                                                                               ');
    textcolor(x3)                                                                             ;
    writeln('                             D2                                                ');
    textcolor(0)                                                                              ;
    writeln('                                                                               ');
    textcolor(x4)                                                                             ;
    writeln('                             SDB                                               ');
    textcolor(0)                                                                              ;
    writeln('                                                                               ');
    textcolor(x5)                                                                             ;
    writeln('                             DAS1                                              ');
    textcolor(0)                                                                              ;
    writeln('                                                                               ');
    textcolor(x6)                                                                             ;
    writeln('                             CH-CH                                             ');
    textcolor(0)                                                                              ;
    writeln('                                                                               ');
    textcolor(x7)                                                                             ;
    writeln('                             BHV                                               ');
    textcolor(0)                                                                              ;
    writeln('                                                                               ');
    writeln                                                                                   ;
     
    ms2 :
     
    if GetMouseY = 5
    then begin
         x1 := 7 ;
         x2 := 0 ;
         x3 := 0 ;
         x4 := 0 ;
         x5 := 0 ;
         x6 := 0 ;
         x7 := 0 ;
         goto ms1 ;
         end     ;
     
    if GetMouseY = 7
    then begin
         x1 := 0 ;
         x2 := 7 ;
         x3 := 0 ;
         x4 := 0 ;
         x5 := 0 ;
         x6 := 0 ;
         x7 := 0 ;
         goto ms1 ;
         end     ;
     
    if GetMouseY = 9
    then begin
         x1 := 0 ;
         x2 := 0 ;
         x3 := 7 ;
         x4 := 0 ;
         x5 := 0 ;
         x6 := 0 ;
         x7 := 0 ;
         goto ms1 ;
         end     ;
     
    if GetMouseY = 11
    then begin
         x1 := 0 ;
         x2 := 0 ;
         x3 := 0 ;
         x4 := 7 ;
         x5 := 0 ;
         x6 := 0 ;
         x7 := 0 ;
         goto ms1 ;
         end     ;
     
    if GetMouseY = 13
    then begin
         x1 := 0 ;
         x2 := 0 ;
         x3 := 0 ;
         x4 := 0 ;
         x5 := 7 ;
         x6 := 0 ;
         x7 := 0 ;
         goto ms1 ;
         end     ;
     
    if GetMouseY = 15
    then begin
         x1 := 0 ;
         x2 := 0 ;
         x3 := 0 ;
         x4 := 0 ;
         x5 := 0 ;
         x6 := 7 ;
         x7 := 0 ;
         goto ms1 ;
         end     ;
     
    if GetMouseY = 17
    then begin
         x1 := 0 ;
         x2 := 0 ;
         x3 := 0 ;
         x4 := 0 ;
         x5 := 0 ;
         x6 := 0 ;
         x7 := 7 ;
         goto ms1 ;
         end     ;
     
    if (GetMouseY=5)and(GetMouseButtons=MouseLeftButton)
    then begin
    unite := 'D5' ; pos := 0 ;
    end ;
     
    if (GetMouseY=7)and(GetMouseButtons=MouseLeftButton)
    then begin
    unite := 'Visco' ; pos := 0 ;
    end ;
     
    if (GetMouseY=9)and(GetMouseButtons=MouseLeftButton)
    then begin
    unite := 'D2' ; pos := 0 ;
    end ;
     
    if (GetMouseY=11)and(GetMouseButtons=MouseLeftButton)
    then begin
    unite := 'SDB' ; pos := 0 ;
    end ;
     
    if (GetMouseY=13)and(GetMouseButtons=MouseLeftButton)
    then begin
    unite := 'DAS1' ; pos := 0 ;
    end ;
     
    if (GetMouseY=15)and(GetMouseButtons=MouseLeftButton)
    then begin
    unite := 'CH-CH' ; pos := 0 ;
    end ;
     
    if (GetMouseY=17)and(GetMouseButtons=MouseLeftButton)
    then begin
    unite := 'BHV' ; pos := 0 ;
    end ;
     
    goto ms2 ;
     
    until pos=0 ;
    hidemouse;
    DoneMouse ;
    Le but est de faire changer la couleur du texte au passage de la souris et d'attribuer une valeur à 'unite' lors d'un clic gauche.

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour ! Je ne connaissais pas cette unité Mouse. Je viens de faire un essai rapide avec cet exemple, et je me suis aperçu que la fonction GetMouseY, au lieu de renvoyer une valeur de 0 à 24, renvoie une valeur de 275 à 299. En faisant la soustraction suivante, j'obtiens les valeurs attendues.

    Essai effectué avec Free Pascal 2.6.2, sous Windows 8.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Merci beaucoup
    Tout d'abord, merci beaucoup pour cette réponse si rapide.

    Je ne pourrait malheureusement faire le test que demain soir, je ne manquerai pas de vous tenir informé.

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Bonsoir
    Bonsoir,
    je viens d'essayer sur un pc où j'ai refait une partie du code d'origine,
    et la réponse du système est toujours la même.

    Pour en être sur, j'ai rajouté ces lignes dans ma boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    gotoxy(1,1);
    write(GetMouseY);
    write(' ; ');
    write(MouseLeftButton);
    afin de mettre à jour les info.
    Mais rien à faire : Getmousey renvoie 0 (ou -275 en suivant l'idée du dessus),
    MouseLeftbutton renvoie FALSE.

    Pour info, même l'instruction setmousexy, sensée placer le curseur à un endroit voulu, ne fonctionne pas.
    Par contre, Detectmouse renvoie bien le nombre de boutons de la souris.

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    De mon côté également, la fonction GetMouseButtons semble ne pas fonctionner : elle renvoie toujours 0.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    program Essai;
     
    uses
      Mouse;
     
    begin
      InitMouse;
      repeat
        WriteLn(GetMouseButtons)
      until GetMouseButtons = MouseLeftButton;
    end.
    J'ai jeté un œil dans le code : il est écrit "Mouse unit for linux".

    P.-S. Je viens de tomber sur une discussion dans laquelle on parle aussi d'un problème avec la fonction SetMouseXY.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut problème de pilote
    Bonjour,
    et désolé pour le temps que j'ai mis a répondre, j'ai été pas mal pris.

    Après plusieurs recherches, cela pourrait provenir du pilote de la souris qui serait non compatible avec Dos.

    J'en ai téléchargé un q
    ui s' appelle Cutemouse. Je l'essaierai demain.

Discussions similaires

  1. [UBUNTU] Problème de détection souris/clavier
    Par Merlin dans le forum Ubuntu
    Réponses: 4
    Dernier message: 19/04/2006, 19h23
  2. Réponses: 2
    Dernier message: 29/03/2005, 14h25
  3. Problème de détection de nouveau processeur
    Par zakfa dans le forum Composants
    Réponses: 12
    Dernier message: 24/01/2005, 17h09
  4. Problème avec l'affichage de souris INT 33,01h
    Par belgampaul dans le forum Assembleur
    Réponses: 7
    Dernier message: 07/12/2004, 21h37
  5. [C#] Problème de centrage de la souris dans un formulaire.
    Par aegypius dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/10/2004, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo