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 :

OnMouseMove c++ builder


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut OnMouseMove c++ builder
    Bonjour,

    Je me suis peut-être mal expliqué sur mon post précédent

    En Delphi, le code ci-dessous permet de déplacer un composant sur l'écran :

    Code delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
       begin
       // pour glisser-déplacer le composant
      if (ssLeft in Shift) then  // ou (ssRight in Shift) pour le bouton droit
         begin
        ReleaseCapture;
        SendMessage(Panel1.Handle,WM_SYSCOMMAND,SC_MOVE+1,0); //Ici Panel1 ou autre composant ou Form
        end;
     end;

    Existe-il un code analogue en c++ builder ?

    Avec Firemonkey, if (Shift.Contains(ssLeft)) au lieu de if (Button == mbLeft) en VCL

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut deplacer un composant avec la souris Firemonkey
    Cette solution marche.
    Elle nécessite deux variables globales, mais ça fonctionne. Elle est sur ce forum : http://chgi.developpez.com/tips2/

    Dans .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        public:		// Déclarations utilisateur
        bool Deplacement;   
        int XPos, YPos;
    Dans .cpp

    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
    void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
    		  float X, float Y)
     
    {
       XPos = X;
       YPos = Y;
      if (Shift.Contains(ssLeft))   Deplacement = true;
    }
     
     
    void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, float X,
    		  float Y)
    {
      if ( Deplacement == true )
    	 {
    	   Image1->Position->X += X-XPos;
    	   Image1->Position->Y += Y-YPos;
    	 }
    }
     
    void __fastcall TFor:lol:m1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
              float X, float Y)
    {
     Deplacement = false;
    }

  3. #3
    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
    1
    2
    3
    4
    5
    6
     
    if ( Deplacement == true )
    	 {
    	   Image1->Position->X += X-XPos;
    	   Image1->Position->Y += Y-YPos;
    	 }
    Devrait poser un problème au niveau déplacement de l'objet dans le temps !!!
    Il vaut mieux réactualiser XPos et YPos à chaque move :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if ( Deplacement == true )
    	 {
    	   Image1->Position->X += X-XPos;
    	   Image1->Position->Y += Y-YPos;
               YPos = Y;
               XPos = X;  
    	 }
    Cela permet de garder l'objet sous le curseur !

    A plus !

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 132
    Par défaut
    Merci henderson. Bonne journée

Discussions similaires

  1. Choisir Visual c++ ou Borland C++Builder ?
    Par DevEric dans le forum Choisir un environnement de développement
    Réponses: 31
    Dernier message: 14/06/2007, 23h48
  2. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  3. c++ builder JavaDoc :)
    Par JEG dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2002, 13h31
  4. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    Réponses: 1
    Dernier message: 26/04/2002, 09h59
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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