Programación General > Delphi

 Mover Componentes

(1/1)

Perrero:
Como puedo mover los diferentes componentes que se encuentran en un formulario al pulsarlo y moverlo simultaneamente, e estado intentando dandole el valor la posicion del puntero (x,y) al top y left del componente pero no me funciona muy bien,  :P  mejor dicho no funciona  :blink: ....Les agradezco de antemano.

Enko:
Recien probé y esto funciona.

--- Código: Text --- procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin   Button1.Top := Y;   Button1.Left := X;end;  
Al mover el mouse, el Button1 se posiciona en donde esta actualmente el Puntero de RAton.

Igualmente, no entendí muy bien que es lo que quieres hacer. Si no es eso, avisa.

Perrero:
Yo tbm intente ese codigo, pero hace que el boton se mueva para cualquier lado (por lo menos a mi me pasa eso  :blink: ), buscando encontre este codigo:


--- Código: Text --- if ssLeft in Shift then begin    Button1.Top := Mouse.CursorPos.Y - Form1.Top;    Button1.Left := Mouse.CursorPos.x - Form1.Left;  end;  
El problema es q no entiendo ni pio lo que significa, si alguien si sabe que por favor me ayude...gracias

P.D: El boton recien se mueve cuando le das clic y desplazas el puntero, por que se mueve recien al hacer clic si no se fijo nada en OnMouseDown?

Enko:
fijate en la ayuda de delphi sobre TMouse;

es un componente no visual que te indeca la posicion del raton en la pantalla y si esta presionado algun boton.


Para desplazar cualquer componente en la forma, usa TOP y LEFT.
Toma en cuenta que (0,0) seria la esquina superior izquierda de la Form y no la esquina superior izquierda de la pantalla.

Probá este codigo en el evento onMouseMove
--- Código: Text --- procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin  Button1.Top := Y;  Button1.Left := X;end;  la esquina superior i<quierda del boton, se posiciona en donde sta el puntero.
(tal vez a vos, se te haya ido para cualquier lado porque invertiste X con Y?)




--- Citar --- Mouse.CursorPos.Y - Form1.Top;
Mouse.CursorPos.X - Form1.Left;

--- Fin de la cita ---
esto seria la posicion relativa en donde se encuentra el puntero del raton, si la Form se encontrara en la posicion (0,0) de la pantalla.

Navegación

[0] Índice de Mensajes

Ir a la versión completa