Hola juank1971.
Cita:
Empezado por juank1971
esto lo pruebo con cualquier otro componente y funciona perfecto. Alguna idea.
|
Si, en realidad la segunda línea de tu código tendría que poder escribirse como:
Código Delphi
[-]
SendMessage(SpeedButton1.Handle, WM_SYSCOMMAND, $F012, 0);
Y aquí esta el problema... Por que
TSpeedButton deriva de
TGraphicControl y no de
TWinControl que implementa la propiedad
Handle. Vas a tener que programar un poco para lograr el efecto que buscas.
Te pongo un ejemplo, no muy elaborado, como para darte una idea de como podrías encararlo:
Código Delphi
[-]
...
implementation
var
MoveOn: Boolean = False;
procedure TForm1.SpeedButton1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssCtrl in Shift then MoveOn:= True;
end;
procedure TForm1.SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if MoveOn then
begin
SpeedButton1.Left := ScreenToClient(Mouse.CursorPos).X;
SpeedButton1.Top := ScreenToClient(Mouse.CursorPos).Y;
end;
end;
procedure TForm1.SpeedButton1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MoveOn := False;
end;
Saludos.