Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
966 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Glisser/ Déplacer un composant Firemonkey c++builder

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Glisser/ Déplacer un composant Firemonkey c++builder

n°2307059
magdani
Posté le 28-10-2017 à 13:52:13  profilanswer
 

Bonjour;
 
J'aimerais déplacer un Bouton (ou autre composant).
 
Erreur avec
- if (Shift.Contains(ssLeft)) {ReleaseCapture(); SendMessage(MonBouton, WM_SYSCOMMAND, SC_MOVE+1,0); }
 
Ci-dessous mon code :
 
Dans Unit2.h
private: // Déclarations utilisateur
TButton *MonBouton; // je crée un bouton
void __fastcall MonBoutonClick(TObject *Sender);
void __fastcall MonBoutonMouseMove(TObject *Sender, TShiftState Shift, float X,
float Y);
 
Dans Unit2.cpp
 
//---------------------------------------------------------------------------
void __fastcall TForm2::FormCreate(TObject *Sender)
{
MonBouton = new TButton(this); // création de MonBouton
MonBouton->Position->X = 20;
MonBouton->Position->Y = 20;
MonBouton->Text = "Bouton";
MonBouton->Parent = Form2;
 
MonBouton->OnClick = MonBoutonClick;
MonBouton->OnMouseMove = MonBoutonMouseMove;
}
 
void __fastcall TForm2::MonBoutonClick(TObject *Sender)
{
ShowMessage("Tu viens de cliquer sur MonBouton" );
}
 
void __fastcall TForm2:: MonBoutonMouseMove(TObject *Sender, TShiftState Shift, float X,
float Y)
{
// ShowMessage("Tu viens de passer sur MonBouton" ); // le message s'affiche si le curseur passe sur MonBouton
 
if (Shift.Contains(ssLeft))
{
ReleaseCapture();
SendMessage(MonBouton, WM_SYSCOMMAND, SC_MOVE+1,0); // erreur
}
}
Merci d'avance pour vos réponses

mood
Publicité
Posté le 28-10-2017 à 13:52:13  profilanswer
 

n°2307396
magdani
Posté le 07-11-2017 à 20:27:34  profilanswer
 

Cette solution marche.
Elle nécessite deux variables globales, mais ça fonctionne.
     
    public:  // Déclarations utilisateur
    bool Deplacement;    
    int XPos, YPos;
 
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;
}


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Glisser/ Déplacer un composant Firemonkey c++builder

 

Sujets relatifs
C++ builder Firemonkey créer une Image avec BitmapComment déplacer un Tbitmap ?
Builder et LinuxDOS - Déplacer fichiers contenus dans des sous dos
[Joomla]Recherche de Composant pour gérer une "bibliothèque"Divi : utiliser le Builder avec WooCommerce
creation d'un script pour deplacer les dossier par defautVBA PPT - Déplacer une Shape d'une slide à une Autre
IHM d'une application VCL paramétrable par l'utilisateur ? 
Plus de sujets relatifs à : Glisser/ Déplacer un composant Firemonkey c++builder


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR