juju_le_barbare Vous fiez pas aux apparences ! | 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 :
- procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- Const SC_DragMove=$F012;
- begin
- ReleaseCapture;
- if Sender is TLabel then
- ((Sender as TLabel).Parent).Perform(WM_SysCommand, SC_DragMove, 0)
- else
- begin
- if Sender is TImage then
- ((Sender as TImage).Parent).Perform(WM_SysCommand, SC_DragMove, 0)
- else
- (Sender as TControl).Perform(WM_SysCommand, SC_DragMove, 0);
- end;
- end;
|
J'ai essayé de le traduire sous C++ Builder, voici ce que j'ai pondu :
Code :
- void __fastcall TForm1::Button1MouseDown(TObject *Sender,
- TMouseButton Button, TShiftState Shift, int X, int Y)
- {
- ReleaseCapture;
- if (Sender->ClassNameIs("TLabel" ))
- (dynamic_cast<TLabel *>(Sender))->Perform(WM_SYSCOMMAND, 0xF012, 0);
- else
- {
- if (Sender->ClassNameIs("TImage" ))
- (dynamic_cast<TImage *>(Sender))->Perform(WM_SYSCOMMAND, 0xF012, 0);
- else
- ((TControl *)Sender)->Perform(WM_SYSCOMMAND, 0xF012, 0);
- }
- }
|
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
|