FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Seleccionar shapes y moverlas
Hola,estoy haciendo unos programas en delphi, del que no tengo mucha experiencia y asi he encontrado estos foros.
Me ha surgido una pequeña duda,y despues de revisar la mayoria de posts, no he encontrado una posible solución, asi que os pregunto a ver si se puede resolver. Lo que estoy haciendo es una especie de Paint como el de windows bastante basico. De momento, he hecho para poder dibujar figuras como rectangulos,elipses, lineas y esas cosas. La cuestion es que quiero hacer que esas figuras se puedan seleccionar y despues mover, redimensionar o borrar en tiempo de ejecucion. Me imagino que no debe ser muy complicado de hacer, pero no se me ocurre como. Bueno, perdon por el tocho este, y saludos. |
#2
|
|||
|
|||
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.
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.
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.
y en el lugar donde creas los shapes le asignas estro procedimiento al shape creado
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. |
#3
|
|||
|
|||
Muchas gracias por esa respuesta tan elaborada rocio84, creo que con eso que has puesto funcionará a la perfección.
La única duda que me queda,es a la hora de seleccionar una de las formas dibujadas para luego moverla, lo que se me ocurre es por ejemplo borrar la forma actual usando un brush de color del fondo y luego dibujarla en el lugar al que la vaya a mover. Un saludo. |
#4
|
|||
|
|||
Hola, estoy siguiendo este mismo ejemplo que creo me resultará muy útil, pero me sucede ahora mismo que lo que tengo es un Timage de fondo y lo que quiero es que mediante un botón de opendialog me cargue una imagen y me la ponga encima del fondo que tengo.
Creo que solucionando este problema, podría a partir de ahí, crear tantas variables como componentes quisiera meter encima del fondo. Como puedo solventar el problema? Llevo viendo varios ejemplos que tengo...pero ni así logré hacerlo tirar. Muchas gracias, de veras. |
#5
|
|||
|
|||
Perdon por la tardanza de la respuesta , posiblemente ya lo hayas solucionado, de todos modos, asi es como puedes cargar la imagen de un TImage usando un openpicturedialog:
Para seleccionar la imagen en lugar de usar un OpenDialog es mejor usar un OpenPictureDialog que esta especializado para imagenes. |
#6
|
|||
|
|||
Perfecto! Muchisimas gracias rocio84!
Lo único que me queda por dominar la aplicación seria que mediante dos edit (X, Y) se pudiera ir viendo las coordenadas de la imagen. Como podria hacer esto? Una vez mas, Muchisimas gracias! |
|
|
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 |
|