![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Iniciando con el dragDrop Delhpi
Hola chico Felices fiestas, Estoy empezando el manejo de DragDrop y dragover. tengo 6 Timage
(image1 ,image2, image3, image4, image5, image6) cada uno con su imagen de momento he conseguido lo básico . pasar una imagen a cualquiera de las otras imágenes. Pero lo que quiero conseguir es que solo pueda pasar la imag1 a imag4 , image 2 a image5 y image3 a image6 . Esto se puede hacer con el Dragdropp y dragover? como se podría hacer???? Un saludo y gracias |
#2
|
||||
|
||||
Revisa los eventos relacionados con Drag&Drop.
Verás que hay un parámetro Accept, que te permite definir lo que permites arrastrar sobre un control y lo que no. Por ejemplo: En el evento OnDragOver:
Tendrás que controlar que el Serder sea img4, el Source sea img1. En ese caso Accept le asignas True, en otro caso False; Este OnDragOver lo programas sobre img4.
__________________
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
|
|||
|
|||
Grande Neftali muchas gracias pero ahora tengo otro problema ,
El Tema es que estoy intentando hacer un juego, Si el usuario ha pasado la image1 a image4 entonces la puntuación suma 1 , si no no aumanta, bien lo mas lógico para mi seria un botón con un evento onclick algo así: var Form1: TForm1; puntuacion : integer; procedure TForm1.FormCreate(Sender: TObject); begin puntuacion:=0; end; procedure TForm1.Button1Click(Sender: TObject); begin if Image1.Picture=Image4.Picture then inc(puntuacion); Label2.Caption:=IntToStr(puntuacion); end; pero por algun motivo no incrementa puntuación . No se si es porque no compara la imagen nueva en image4 que fue arrastrado de image1 . o otra cosa pero ya estoy mareado de mirar el código y hacer pruebas procedure TForm1.Image4DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin if (Sender = image4 ) and (Source = image1) then begin inc(puntuacion); Accept := true; Label2.Caption:=IntToStr(puntuacion); {ShowMessage('muy bien');} end else accept:=false; { ShowMessage('muy mal');} end; Este ejemplo tampoco funciona por alguna razon puntuacion coge el valor de la coordenada x y y en label2 muestra la coordenda x ,y . y en el showmessage siempre sale muy mal. ya habreis notado que acabo de empezar en el tema de programacion. ![]() Última edición por Piter_1 fecha: 27-12-2016 a las 16:50:37. |
#4
|
||||
|
||||
Antes de nada recomendarte que revises la Guía de estilo de los foros.
Por favor, cuando escribas código, utiliza TAG's para mejorar la lectura. En el código anterior ya te las he añadido yo (los TAG's).
__________________
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
|
||||
|
||||
Cita:
Debes entender lo que has colocado, para saber porqué.
Con esta comparación está comparando 2 direcciones a memoria, pero no 2 imágenes para saber si son iguales. Si te explicas iun poco más tal vez podamos ayudarte. Lo lógico en este caso (si es lo que yo me imagino) es que guardes una estructura en memoria (array bidimensional) con lo que se incluye en cada casilla y compares esos valores, en lugar de las imágenes.
__________________
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. |
#6
|
|||
|
|||
como no he podido editar por una restriccion de 25 minutos en la edicion de mis mensjes lo pongo aqui.
mi objetivo es que si el usuario no arrastra por ejempl image1 a image4 que o bien : no suma puntos o ,image1.visible :=false asi quedaria fuera de juego image1 o image1.enable:=true. pero no me funciona ninguno como yo quiera Esto esta fuera de mi alcance ![]() es que guardes una estructura en memoria (array bidimensional) con lo que se incluye en cada casilla y compares esos valores, en lugar de las imágenes.
|
#7
|
||||
|
||||
Tal vez deberías colocar un proyecto de ejemplo (ZIP) para ver qué es lo que estás intentando hacer.
Aunque sea un ejemplo reducido.
__________________
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
|
|||
|
|||
Gracias neftali al final opté por plan b no era lo que que tenia en mente pero me ha sacado del apuro gracias por todo
|
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cómo simular el dragdrop de un fichero a un TWebbrowser? | cocute | Varios | 10 | 17-10-2014 21:11:30 |
TDBGrid + DragDrop + PopUp + Multiselect | mjjj | Varios | 5 | 21-04-2014 15:18:40 |
Salida de msdos en delhpi 2010 | xerkan | Varios | 2 | 08-02-2010 19:54:32 |
Conectar delhpi con mysql | richy08 | Conexión con bases de datos | 4 | 24-04-2008 22:02:05 |
DragDrop de un ListBox a otro?? | carrrlos | OOP | 2 | 04-05-2007 14:27:04 |
![]() |
|