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 :

Modifier image selon passage de la souris


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 38
    Points : 29
    Points
    29
    Par défaut Modifier image selon passage de la souris
    Bonjour à tous,
    j'ai une Timage avec une carte géographique.
    Je voudrais que selon la position de la souris telle ou telle région soit mise en évidence par changement de couleur par exemple.

    Est-ce faisable? faut-il faire autant d'images que de regions ou bien peut-on utiliser un systeme de calque?

    Merci d'avance.

  2. #2
    Membre habitué

    Profil pro
    Cadre
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 168
    Points
    168
    Par défaut
    Il n'y a pas de systeme de calques dans le TImage. Donc plusieurs images, et des tests dans le OnMouseMove

  3. #3
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Salut,
    une idée comme ca:
    Tu peux dessiner sur le Canvas de ton Timage un cadre (rouge par exemple) de manière à délimiter la zone que tu mets en évidence. Pour l'enlever, il te suffira de faire un Refresh du Canvas.
    Tu peux aussi l'afficher en fonction de la position de la souris dans ton image avec le OnMouseMove.

  4. #4
    Membre chevronné

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    Sans doute avec la méthode TCanvas::FloodFill.
    Pour celà il faut que ces zones soient parfaitement délimitées car le moindre trou est une porte ouverte pour remplir les zones adjacentes.

    Un TPoint servant à mémoriser le point de sélection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TPoint Zone = Point(-1,-1); //Aucune sélection
    Couleurs utilisées (pour l'exemple):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TColor Couleur_de_fond = clWhite;
    TColor Couleur_de_selection = clLime;
    Dans la méthode OnMouseMove, quelque chose basé sur ce principe :

    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
    TCanvas *C = Image1->Canvas; //Pour simplifier l'écriture du code
    if(C->Pixels[X][Y] == Couleur_de_fond)
        {
        if(Zone.x != -1)
            {
            //Rétablir la couleur de la zone active précédente
            C->Brush->Color = Couleur_de_fond;
            C->FloodFill(Zone.x, Zone.y, Couleur_de_selection, fsSurface); 
            }
        //nouvelle sone active
        Zone = Point(X,Y);
        //Remplir la zone
        C->Brush->Color = Couleur_de_selection;
        C->FloodFill(Zone.x, Zone.y, Couleur_de_fond, fsSurface); 
        }
    Cet exemple ne vaut que pour une couleur de fond uniforme.
    Dans le cas contraire, il faudrait développer un algo permettant de coloriser chaque pixel en appliquant d'autres règles.

    A plus !

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Je me souviens de deux autres posts dans le même sens: ici et ici

Discussions similaires

  1. Changer d'image au passage de la souris et au clique
    Par newty dans le forum Windows Forms
    Réponses: 7
    Dernier message: 01/05/2008, 19h53
  2. Changement d'image au passage de la souris
    Par dessinateurttuyen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 18/07/2006, 13h05
  3. Agrandir une image au passage de la souris
    Par matika dans le forum C++Builder
    Réponses: 7
    Dernier message: 09/03/2006, 00h10
  4. affichage image après passage de la souris sur bouton
    Par nerser dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/01/2006, 22h53
  5. Réponses: 32
    Dernier message: 19/11/2005, 19h26

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