FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Transportar imágenes
Me gustaría que alguien pusiera un ejemplo de arrastre de imágenes u otro objeto llevándolo con el ratón. Yo sólo consigo simular un arrastre mediante cambio de cursor, seguido de quitar y poner una imagen.
Funciona pero queda poco realista. Primero hago coloco en OnDragOver un Accept, y luego al hacer onDownMouse, Button=mbLeft, quito el TLabel. Luego onDropDrag del objeto destino hago visible de nuevo el objeto. Pero el ratón no "coge" el objeto Source, sólo cambia de cursor. Me imagino que alguien me podría dar una pista. Es para un programa infantil de colocar letras. Las letras podrían ser TImage, TStaticText o TLabel. Si este tema se ha tratado, no lo he podido encontrar. Gracias. |
#2
|
||||
|
||||
En mi web tienes varios ejemplos relacionados con el tema, aunque no acabo de entender lo que dices, de que "Funciona, pero queda poco realista"...
Ejemplo de tratamiento de “Planos y figuras” Seleccionar Shapes visualmente Mover controles de un form en Runtime Utilizar un BMP para cambiar el cursor Arrastrar elementos entre dos TListBox Crear/destruir comp. en Runtime y moverlas con el ratón Espero que te sea útil. NOTA: empieza por el último.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Explanation
Se trata de poner letras bajo un animal, por ej. GATO. Verás, cuando un nano de tres años (q seguro q aún no sabe leer) coge la letra G, la letra desaparece y se convierte en un papel chiquitito que se lo lleva el cursor del ratón. Pero el enano piensa "Qué raro, la letra se ha hecho pequeñísima". Luego al poner el papelito en el cuadro destino vuelve a aparecer la letra agrandada. No sé si ahora está más claro.
Lo que quiero es llevar la letra real, aunque luego al depositarla se haga mayor, o de otro color, pero que el cursor arrastre una letra, no un papelito colgando de la flecha... Estudio tu código y lo pruebo. Ya casi lo tenía, pero me volvía loco el comportamiento aparentemente errático de la dichosa letra escapista. |
#4
|
||||
|
||||
Entonces creo que el que necesitas es este: Utilizar un BMP para cambiar el cursor
En tu caso debes "montar" el BMP con la letra que necesitas arrastrar y utilizarlo como cursor o directamente arrastrar el LABEL con la letra. Tal vez no te estoy entendiendo. Tú debes tenerlo claro porque sabes de lo que hablas, pero piensa que nosotros, si no nos das información, no lo sam¡bemos y sólo hacemos que imaginar cosas...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
ProbandoProbando
Llamaremos "mover" letra a nuestro propósito, para no confundirlo con el Dragging=Arrastrar. Al principio colisionaba con el Drag. El BeginDrag(True), hacia saltar el cursor de la notita, y se movía de modo raro, así que lo hice únicamente controlando el "mover" con (MouseDown, MouseMove, MouseUp) siguiendo tus instrucciones y va casi perfecto.... hasta que el TLabel pasa por encima de un Dibujo. Entonces la letra (TLabel) se vuelve borrosa y parpadea en exceso, llegando casi a perderse. Si el dibujo-base se hace 'Transparent:=True' mejora un poco, pero no de modo satisfactorio.
Ahora probaré con el BitMap o con un TImage. A ver q pasa esta vez. |
#6
|
||||
|
||||
Eureka
Pues añadiendo " (Sender as TLabel).BringToFront" el Label pasa por encima de los componentes visuales. Ahora ando intentando que al posarse en su destino tenga derecho exclusivo en su casilla, frente a otras letras. De manera que una letra no pueda "posarse" donde ya hay otra correcta.
Me gustaría saber para que sirven los eventos Dock y Shift. Sé lo que significan pero no encuentro pistas. Supongo que el Dock será para "aparcar" un objeto que se mueve, ¿pero y el Shift ese? He entendido que MouseDown acaba en su MouseUp correspondiente del mismo objeto. Con eso me conformo. Gracias. |
#7
|
||||
|
||||
Se agradecen las explicaciones.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
Se trata de llevar varias letras TLabel para formar una palabra.
El caso es q muevo perfectamente el TLabel, pero pierdo la funcionalidad (Sender, Source) del Mouse por lo que si hay dos letras o más iguales, no se puede dilucidar qué letra se ha movido. Si uso a la vez las dos efectos (Drag + movimientos) se optienen movimientos "locos" del TLabel. |
#9
|
||||
|
||||
Cita:
¿Cómo puedo hacer para que el objeto Imagen dispare un evento que me indique el Source y el Sender? o lo que es lo mismo; si se mueven las letras TLabel encima de los TImage, ¿cómo puedo discriminar las letrs en el caso de estar repetidas? ¿Se entiende? Espero que sí y que alguien pueda aportar su opinión. Eso espero.... y gracias. |
#10
|
||||
|
||||
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Transportar Programa | laukri | Varios | 6 | 02-10-2008 01:11:40 |
transportar datos con un txt | PEPE_69 | C++ Builder | 1 | 30-03-2007 20:03:55 |
Problemas al transportar un proyecto | CamiloU | Varios | 3 | 07-04-2006 22:00:09 |
Transportar BDE | Enan0 | Conexión con bases de datos | 1 | 28-09-2005 09:23:04 |
|