• Domingo 22 de Diciembre de 2024, 08:35

Autor Tema:  Mover Componentes  (Leído 1461 veces)

Perrero

  • Miembro MUY activo
  • ***
  • Mensajes: 209
    • Ver Perfil
Mover Componentes
« en: Miércoles 17 de Mayo de 2006, 02:22 »
0
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

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Mover Componentes
« Respuesta #1 en: Miércoles 17 de Mayo de 2006, 02:33 »
0
Recien probé y esto funciona.
Código: Text
  1.  
  2. procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  3.   Y: Integer);
  4. begin
  5.    Button1.Top := Y;
  6.    Button1.Left := X;
  7. end;
  8.  
  9.  

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

  • Miembro MUY activo
  • ***
  • Mensajes: 209
    • Ver Perfil
Re: Mover Componentes
« Respuesta #2 en: Miércoles 17 de Mayo de 2006, 04:02 »
0
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
  1.  
  2. if ssLeft in Shift then begin
  3.     Button1.Top := Mouse.CursorPos.Y - Form1.Top;
  4.     Button1.Left := Mouse.CursorPos.x - Form1.Left;
  5.   end;
  6.  
  7.  

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

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Mover Componentes
« Respuesta #3 en: Miércoles 17 de Mayo de 2006, 17:04 »
0
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
  1.  
  2. procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  3.  Y: Integer);
  4. begin
  5.   Button1.Top := Y;
  6.   Button1.Left := X;
  7. end;
  8.  
  9.  
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;
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.