Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 28-06-2006
rocio84 rocio84 is offline
Miembro
 
Registrado: oct 2005
Posts: 19
Poder: 0
rocio84 Va por buen camino
Hola

para mover componentes dinamicamente debes usar los siguientes eventos:

OnMouseDown: aqui debes almacenar en dos variables (raton_x, raton_y) la posición actual del ratón, que
se pasa como parámetro en el evento y poner a cierto una variable booleana que indica cuando se debe mover.

Código Delphi [-]
mover := true;
raton_x := X
raton_Y := Y

OnMouseMove: sumar la diferencia, entre la posicion actual y la posición guardada del ratón, a las propiedades
Top y Left de la componente.

Código Delphi [-]
if mover then
begin
    with shape do 
    begin    
        top := top + (Y-raton_Y);
        left := left + (X-raton_X);
    end;
end;

OnMouseUp: poner a falso la variable mover.

Para redimiensionar seria muy parecido pero en lugar de modificar las propiedades Top y Left debes
modificar Heigth y Width.

Como los shapes los creas dinámicamente, no puedes acceder a los eventos como cuando las componentes se
crean dinamicamente, por eso, tendrás que crear tres procedimientos, uno para cada evento anterior, que
tengan los parámetros de entrada y salida igual que los de los eventos. Para ver que parametros son pue
des crear un shape de prueba y haz doble click en estos eventos y copias la cabecera.

Código Delphi [-]
procedure TForm1.IniciarMovimiento(...//parametros de OnMouseDown...);
procedure TForm1.MoverShape(...//parametros de OnMouseMove...);
procedure TForm1.FinalizarMovimiento(...//parametros de OnMouseUp...);

y en el lugar donde creas los shapes le asignas estro procedimiento al shape creado
Código Delphi [-]
...
onmousedowm := iniciarmovimiento;
onmousemove := movershape;
onmouseup   := finalizarmovimiento;
...

Para seleccionar una componente puedes usar la clase Canvas para dibujar un rectangulo alrededor del
shape ,al hacer click sobre el, para indicar de alguna manera que está seleccionado.

Espero que te haya sido útil.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como seleccionar campos de una tabla sin saber cuantos van a seleccionar david duarte SQL 7 05-04-2010 21:15:43
Moviendo Shapes (CLX): flickering y Off-screen bitmaps kinobi Gráficos 15 08-08-2007 01:25:22
No puedo imprimir imagenes y shapes cesar_delphi Impresión 2 02-11-2005 02:22:50
Bucle sobre Shapes Arkaz Gráficos 1 05-01-2005 02:53:39
Array de Shapes Jozele OOP 2 18-10-2004 17:47:02


La franja horaria es GMT +2. Ahora son las 01:56:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi