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

C++Builder Discussion :

Création d'une zone de sélection à la souris


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Par défaut Création d'une zone de sélection à la souris
    Salut,

    je veux créer une zone de selection à la souris dans une Timage, comment faire?

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TRect Bnds = Rect(left, top, right, bottom); //à toi de définir left, top...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if((X < Bnds.Right) && (X > Bnds.Left) && (Y < Bnds.Bottom) && (Y > Bnds.Top))
        {
        //match
        }
    ou bien à l'aide d'une méthode (ici membre de TForm1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public :
    void __fastcall InsideBnds(int X, int Y);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::InsideBnds(int X, int Y)
    {
    return ((X < Bnds.Right) && (X > Bnds.Left) && (Y < Bnds.Bottom) && (Y > Bnds.Top));
    }
    Une méthode plus générale (par ex : s'il existe plusiers zones):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void __fastcall TForm1::InsideBnds(int X, int Y, TRect *R)
    {
    return ((X < R->Right) && (X > R->Left) && (Y < R->Bottom) && (Y > R->Top));
    }
    Pour terminer, l'interception de deux rectangles :
    C'est le cas lorsque l'on délimite une zone à l'aide de la souris :

    Dans la OnMouseDown : Bnds.Left = X; Bnds.Top = Y;
    Dans la OnMouseMove : Bnds.Right = X; Bnds.Bottom = Y;
    Dans la OnMouseUp on échange Left et Right si Left > Right, idem pour Top et Bottom si Top > Bottom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TForm1::InsideBnds(TRect S, TRect *R)
    {
    return ((S.Left < R->Right) && 
            (S.Right > R->Left) && 
            (S.Top < R->Bottom) && 
            (S.Bottom > R->Top));
    }
    La nature des paramètres (TRect R ou TRect *R) est purement anecdotique, un pointeur étant cependant plus simple et plus rapide.

    A plus !

  3. #3
    Membre confirmé Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Par défaut


    merci pour ton aide.

    je tiens à te préciser que je suis débutante en programmation C++ Builder, et je n'ai pas bien compris ce que tu as expliqué . si ce n'est pas trop te demander peux tu détailler un peu plus, me dire par exemple ou je dois mettre chaque code


  4. #4
    Membre confirmé Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Par défaut

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Si tu pouvais donner plus de précisions !

    A plus !

  6. #6
    Membre confirmé Avatar de bahiatoon
    Inscrit en
    Juillet 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2006
    Messages : 169
    Par défaut
    Salut,

    Je veux savoir ou je dois écrire les codes que tu m’as donné, ou plus précisément toutes les étapes à suivre pour créer la zone de sélection.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer l'adresse d'une zone de sélection
    Par belfaigore dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/07/2020, 15h18
  2. Réponses: 0
    Dernier message: 10/11/2010, 09h34
  3. Création d'une arborescence pour sélection?
    Par Rheym dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/03/2007, 15h16
  4. [OCaml] Création d'une zone de texte
    Par Camstyles dans le forum Caml
    Réponses: 5
    Dernier message: 07/03/2007, 09h59

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