[C++ Builder] Bouger un objet à la souris

Bouger un objet à la souris [C++ Builder] - C++ - Programmation

Marsh Posté le 15-05-2002 à 08:18:21    

Bonjour,
 
J'ai eu un petit code delphi servant à bouger un TObjet avec la souris, à mettre dans l'évènement OnMouseDown d'un Objet.
Le voici :
 

Code :
  1. procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  2.   Shift: TShiftState; X, Y: Integer);
  3. Const SC_DragMove=$F012;
  4. begin
  5. ReleaseCapture;
  6. if Sender is TLabel then
  7. ((Sender as TLabel).Parent).Perform(WM_SysCommand, SC_DragMove, 0)
  8. else
  9. begin
  10. if Sender is TImage then
  11.   ((Sender as TImage).Parent).Perform(WM_SysCommand, SC_DragMove, 0)
  12. else
  13.   (Sender as TControl).Perform(WM_SysCommand, SC_DragMove, 0);
  14. end;
  15. end;


 
 
J'ai essayé de le traduire sous C++ Builder, voici ce que j'ai pondu :
 

Code :
  1. void __fastcall TForm1::Button1MouseDown(TObject *Sender,
  2.       TMouseButton Button, TShiftState Shift, int X, int Y)
  3. {
  4. ReleaseCapture;
  5. if (Sender->ClassNameIs("TLabel" ))
  6. (dynamic_cast<TLabel *>(Sender))->Perform(WM_SYSCOMMAND, 0xF012, 0);
  7. else
  8. {
  9. if (Sender->ClassNameIs("TImage" ))
  10.   (dynamic_cast<TImage *>(Sender))->Perform(WM_SYSCOMMAND, 0xF012, 0);
  11. else
  12.   ((TControl *)Sender)->Perform(WM_SYSCOMMAND, 0xF012, 0);
  13. }
  14. }


 
Bien sûr ça marche pas (ça ne met pas d'erreur, mais rien ne se passe.
Si on pouvait me dire où j'ai fait l'erreur !
 
@++


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 15-05-2002 à 08:18:21   

Reply

Marsh Posté le 15-05-2002 à 12:52:30    

no response ?


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 15-05-2002 à 13:10:38    

T'as pas mis le .Parent en C++ ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-05-2002 à 09:11:23    

antp a écrit a écrit :

T'as pas mis le .Parent en C++ ?  




 
dans l'aide j'ai lu qu'on pouvait faire un dynamic cats.
 
Pour le .Parent il s'utilise comment ? (j'ai plus d'aide !)
 
@++


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 16-05-2002 à 09:33:38    

En Pascal tu fais (Sender as TLabel).Parent).Perform et en C++ tu fais (dynamic_cast<TLabel *>(Sender))->Perform
Ça ne serait pas plutôt (dynamic_cast<TLabel *>(Sender))->Parent->Perform ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-05-2002 à 09:38:23    

antp a écrit a écrit :

En Pascal tu fais (Sender as TLabel).Parent).Perform et en C++ tu fais (dynamic_cast<TLabel *>(Sender))->Perform
Ça ne serait pas plutôt (dynamic_cast<TLabel *>(Sender))->Parent->Perform ?  




 
je teste merci ;)


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 16-05-2002 à 09:43:15    

juju_le_barbare a écrit a écrit :

 
 
je teste merci ;)  




 
non ça marche tjrs pas  :(  
ça break pas, pas de warning, bref il compile bien, mais ça ne fait rien du tout :(
 
@++


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed