Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-11-2004
Jan_polero Jan_polero is offline
Miembro
 
Registrado: may 2004
Posts: 62
Poder: 20
Jan_polero Va por buen camino
¿Para que sirve MouseDownSpot?

Hola amigos. Pues resulta que implementé una función que encontré por internet y ahora quiero cambiarla un poco.Necesito saber para qué sirve MouseDownSpot.X y MouseDownSpot.Y
Gracias de antemano y un saludo.
Responder Con Cita
  #2  
Antiguo 30-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Estee...

¿Y cómo vamos a saber lo que hace una función que encontraste por ahí si no vemos el código?

Lo único que puedo pensar es que MouseDownSpot es una variable de tipo TPoint. Más no puedo adivinar .

// Saludos
Responder Con Cita
  #3  
Antiguo 30-11-2004
Jan_polero Jan_polero is offline
Miembro
 
Registrado: may 2004
Posts: 62
Poder: 20
Jan_polero Va por buen camino
Vaya,lo siento...jeje.Pues el código va en 3 eventos:

Lo que hace esto es permitir mover Imagenes por el form.Pero hay algunas cosas que no sé que son,como por ejemplo MouseDownSpot o ReleaseCapture(que aunque resulta obvio que suelta la captura desconozco qué es).

//CODIGO DELPHI//
Código Delphi [-]
 Capturing : boolean;
 
 procedure TFInventario.Image1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
 begin
   Capturing := true;
   MouseDownSpot.X := x;//TImage(Sender).Left -1;
   MouseDownSpot.Y := y;//TImage(Sender).Top  -1;
 end;
  
  
 procedure TFInventario.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
   Y: Integer);
 begin
   if Capturing then
   begin
   TImage(Sender).Left := TImage(Sender).Left - (MouseDownSpot.x - x);
   TImage(Sender).Top := TImage(Sender).Top - (MouseDownSpot.y - y);
   end;
 end;
  
 
 procedure TFInventario.Image1MouseUp(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
 begin
   if Capturing then 
     begin
     ReleaseCapture;
     Capturing := false;
     TImage(Sender).Left := TImage(Sender).Left - (MouseDownSpot.x - x);
     TImage(Sender).Top := TImage(Sender).Top - (MouseDownSpot.y - y);
     end;
end;
//FIN CODIGO DELPHI//

Ese es el código.Lo que quiero hacer es que cuando se seleccione una imagen se cree una copia y sea la copia la que se mueva.Por ello debo saber lo que hace.Por ello cualquier ayuda es buena.Muchas gracias de antemano.

Última edición por marcoszorrilla fecha: 30-11-2004 a las 23:12:44. Razón: Añadir etiquetas Delphi
Responder Con Cita
  #4  
Antiguo 01-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues MouseDownSpot lo usan para almacenar las coordenadas del punto donde comienza a arrastrase la imagen.

Pero si me atengo en lo que mencionabas en el otro hilo la verdad es que me parece que tte estás complicando la vida.

El arrastre de las imágenes lo puedes lograr más fácil con el mecanismo DragAndDrop que implementa Delphi. Y dado que al soltar la imagen piensas destruir la original no veo para qué quieres crear una copia.

Te dejo un ejemplo, figures_exe.zip (204kb) y figures_d7.zip (12.1kb).

Ambos zip contienen el mismo ejecutable sólo que el segundo (más pequeño) sólo podrás ejecutarlo si tienes Delphi 7 instalado.

En la aplicación hay dos agujeros y dos figuras. Pruébala y me dices si es algo similar lo que quieres hacer.

// Saludos
Responder Con Cita
  #5  
Antiguo 01-12-2004
Jan_polero Jan_polero is offline
Miembro
 
Registrado: may 2004
Posts: 62
Poder: 20
Jan_polero Va por buen camino
Mover imágenes por la pantalla

La verdad es que debería de haber explicado todo desde el principio.Ahora mismo estoy con dos Programas a la vez.Pero camo son bastante parecidos pensé en utilizar el mismo código en los dos.
El primero de los proyectos es el de las figuras y los agujeros ya mencionado.Y el exe que me has pasado es justamente lo que buscaba.Por eso te hice caso y lo hice con los eventos de arrastrar y soltar.El segundo proyecto consiste en un inventario donde tienes objetos(Imagenes).Estos objetos se pueden combinar para formar otros.Algo así como en las aventuras gráficas.Lo de la copia de la imagen es simplemente algo visual,ya que los objetos no deben moverse.Sólo la copia de la imgen.
Un ejemplo:
Tengo en el inventario 3 objetos.Una pila,una linterna apagada y un destornillador. Los 2 primeros se pueden combinar.Entonces selecciono la pila,se crearía una copia de la pila que es la que puedo arrastrar con el ratón(sin mover la imagen original).Si la suelto sobre el destornillador no ocurrirá nada,la copia de la imagen se destruirá.Pero si lo hago sobre la linterna se destruirán la pila,la copia de la pila y la linterna,y aparecerá una nueva imagen de una linterna encendida.
Bueno,ahora sí he explicado todo.Por eso el motivo de copiar una imagen.No es realmente necesario pero lo hace más vistoso.
El problema es que no sé cómo hacer que en un click se seleccione la imagen,se cree una nueva,y sin soltar el ratón,se seleccione ésta última para arrastrarla.
Siento no haberme explicado antes.No sois adivinos.
Gracias.
Responder Con Cita
  #6  
Antiguo 15-02-2007
angelf25 angelf25 is offline
Registrado
 
Registrado: jul 2006
Posts: 3
Poder: 0
angelf25 Va por buen camino
Arrastre de imagenes

Cita:
Empezado por roman
Pues MouseDownSpot lo usan para almacenar las coordenadas del punto donde comienza a arrastrase la imagen.

Pero si me atengo en lo que mencionabas en el otro hilo la verdad es que me parece que tte estás complicando la vida.

El arrastre de las imágenes lo puedes lograr más fácil con el mecanismo DragAndDrop que implementa Delphi. Y dado que al soltar la imagen piensas destruir la original no veo para qué quieres crear una copia.

Te dejo un ejemplo, figures_exe.zip (204kb) y figures_d7.zip (12.1kb).

Ambos zip contienen el mismo ejecutable sólo que el segundo (más pequeño) sólo podrás ejecutarlo si tienes Delphi 7 instalado.

En la aplicación hay dos agujeros y dos figuras. Pruébala y me dices si es algo similar lo que quieres hacer.

// Saludos
Hola Roman, espero puedas ayudarme. Trato de hacer un juego con arrastre de imagenes, intenté descargar los ejemplos que has puesto pero parece que los enlaces están rotos. Ojala puedas ponerlos otra vez.
Gracias
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 11:58:55.


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