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 :

Agrandir une image au passage de la souris


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Agrandir une image au passage de la souris
    Bonjour je débute avec Builder. j'ai une Image dans mon appli et je voudrais pouvoir la faire agrandir lors d'un clic ou d'un passage de la souris.

    Quel est le moyen le plus simple pour y parvenir? Merci pour vos réponses (un peu de code serait bienvenu).

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 61
    Points : 62
    Points
    62
    Par défaut
    Salut,

    Positionne la propriété "stretch" de ton composant Image à "true".
    Utilise l'évènement "OnMouseMove" de ton composant image.
    Dans cet évènement, modifie les valeurs de "Width" et "Height" de ton Image, en les agrandissant, ainsi ton image se verra agrandie.
    Par contre, oublie pas de remodifier ces valeurs quand tu n'est plus au dessus de ton composant.

  3. #3
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    salut,
    en complément à OliverSleep
    si tu utilise la propriété Stretch = true, alors met AutoSize = false ;


    voilà,

    @+
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  4. #4
    Membre chevronné

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Tout dépend sans doute de l'effet à obtenir et il faudrait savoir ici si le cadre
    de l'image est fixe ou non.

    S'agit-il par exemple de représenter sous le curseur une zone agrandie comme
    le ferait une loupe, par exemple dans un rayon autour de la position de la souris ?

    Pour ces opérations graphiques, il vaut mieux, je pense, développer une class
    dédiée en dérivant peut-être de TImage si on peut surcharger sa méthode Paint.
    Sinon dériver de TCustomControl et travailler avec un Graphics::TBitmap pour
    accélérer le dessin (et éviter les scintillements au cas où...) ou encore se servir de la form
    selon que...

    A plus !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut merci
    Merci pour vos réponses, par rapport à la loupe non je ne cherche pas à aller jusque la, j'ai bien compris pour la modification de la taille, c'est ça mon truc.

    Je vais tester tout ça et je cloturerai des que je n'aurai plus de souci. Je suis optimiste ça m'as pas l'air trop compliqué, même pour moi !!!

    Merci encore

  6. #6
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Salut,
    tu as les deux propriétés AutoSize et Stretech :

    Pour Zoom +/-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Image1 -> AutoSize = false ;
    Image1 -> Width = ZoomWidth ;
    Image1 -> Height = ZoomHeight ;
    Image1 -> Stretech = true ;
    Pour la taille réelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Image1 -> AutoSize = true ;
    Image1 -> Stretech = false ;

    Voilà,

    @+
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 118
    Points : 111
    Points
    111
    Par défaut
    Voici un bout de code qui résoud peut être ton pb :

    Avec ce code, l'image est agrandie au premier clic, puis rappetissée au deuxième :

    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
    void __fastcall TForm1::Image1Click(TObject *Sender)
    {
        int Width1 = 80;
        int Width2 = 160;
        int Height1 = 60;
        int Height2 = 120;
     
        if(Image1->Width == Width1)
        {
            Image1->Width = Width2;
            Image1->Height = Height2;
        }
        else
        {
            Image1->Width = Width1;
            Image1->Height = Height1;
        }
    }
    Avec ce bout de code, l'image est agrandie quand la souris passe dessus, puis rappetissée dès que la souris sort de l'image et revient sur la fiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
    {
        Image1->Width = 160;
        Image1->Height = 120;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
    {
        Image1->Width = 80;
        Image1->Height = 60;
    }
    J'ai mis des tailles fixes au hasard dans ces exemples, mais comme dit précédemment, tu peux aussi jouer avec les propriétés Stretch et AutoSize
    Vous aussi, passez pour un dieu du bon français grâce à Firefox et sa correction orthographique

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    merci fumidu ça marche impeccable c'est tout ce qu'il me fallait

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

Discussions similaires

  1. Agrandir une image au passage de la souris
    Par cabeedge dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 07/06/2011, 23h25
  2. Agrandir une image au passage de la souris
    Par petchy dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/04/2011, 20h43
  3. Agrandir une image au passage de la souris
    Par ishere11 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 03/01/2011, 11h44
  4. Réponses: 7
    Dernier message: 20/09/2010, 11h17
  5. Réponses: 0
    Dernier message: 26/06/2008, 04h15

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