Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Ayuda con Objetos (https://www.clubdelphi.com/foros/showthread.php?t=26011)

JerS 11-10-2005 05:08:34

Ayuda con Objetos
 
Buenas amigos de la comunidad de delphi! les escribo para que me ayuden un poco con algo que estoy haciendo, yo estoy moviendo un imagen sobre varios shape en tiempo de ejecucion, y me gustaria saber como hago para captar el nombre del shape sobre el cual estoy arrastrando la imagen, Recuerden que cuando digo que estoy arrastrando la imagen es que la tengo seleccionada con el click del mouse, no hay una manera de que me diga a penas suelte el click del mouse que tengo sobre la imagen, sobre que shape estoy parado?

dec 11-10-2005 07:43:09

Hola,

Se me ocurre que podrías utilizar el evento "OnMouseMove" de los "TShape". No sería menester que cada uno tuviera "su propio evento", estos podrían compartirlo. En determinada variable podrías guardar la información que te interesa: sobre qué "TShape" se "paró" el ratón. ¿Qué tal? :)

Neftali [Germán.Estévez] 11-10-2005 09:56:03

Si pones el código que estás utlizando ayudaría...

OscarG 11-10-2005 10:04:55

Yo con objetos Shape y otros componentes delphi no suelo tratarlos, pero si q he tenido q hacer objetos q se arrastren.

Yo lo q suelo hacer es, digamos q tengo un objeto q se arrastra y otro contenedor, entonces, cuando arrastro un objeto, activo el contenedor para q se ponga en activo, y al soltar el ratón, lo desactivo. Entonces al activar el contenedor, el contenedor mira si el puntero se está posicionando encima de él, si es asi, suelo hacer q el contenedor cambie de forma para q se sepa q estas encima, y si sueltas dentro del contenedor, entonces haría lo q tenga q hacer...para esto podrías quizás sobreescribir las clases o quizás no...

Esto lo hago yo xq me creo mis propios objetos, pero igual el propio delphi tiene otras posibilidades, espero no llevarte por el mal camino...

roman 11-10-2005 10:21:53

¿Y no sería mejor utilizar el mecanismo de drag&drop que ya implementa Delphi?

1. Se pone la imagen en DragMode = dmAutomatic.
2. A los objetos TShape se les asigna el mismo evento OnDragOver y OnDragDrop.
3. En OnDragOver se pone el parámetro Accept en true para aceptar el arrastre (o se usa algún otro método para determinar si se puede o no soltar ahí la imagen).
4. Ambos eventos cuentan con el parámetro Sender que será el TShape sobre el que se va a soltar la imagen y el parámetro Source que es el objeto que se está arrastrando.
5. En el evento OnDragDrop se usan los parámetros X, Y para determinar la posición donde se suleta la imagen y, en su caso, mover el objeto TImage ahí.

// Saludos

JerS 12-10-2005 00:04:23

Cita:

Empezado por roman
¿Y no sería mejor utilizar el mecanismo de drag&drop que ya implementa Delphi?

1. Se pone la imagen en DragMode = dmAutomatic.
2. A los objetos TShape se les asigna el mismo evento OnDragOver y OnDragDrop.
3. En OnDragOver se pone el parámetro Accept en true para aceptar el arrastre (o se usa algún otro método para determinar si se puede o no soltar ahí la imagen).
4. Ambos eventos cuentan con el parámetro Sender que será el TShape sobre el que se va a soltar la imagen y el parámetro Source que es el objeto que se está arrastrando.
5. En el evento OnDragDrop se usan los parámetros X, Y para determinar la posición donde se suleta la imagen y, en su caso, mover el objeto TImage ahí.

// Saludos

Muchas Gracias a todos por su Ayuda :D, Una pregunta Roman con el evento OnDragDrop yo puedo especificar en que parte del shape me suelte la imagen, asignandolo en la X y Y??. Disculpa mi ignorancia, pero hice todo lo que me dices ahi arriba y cuando intento mover la imagen me sale bloqueada, el Icono que no me deja mover ahora la imagen

dec 12-10-2005 03:24:34

1 Archivos Adjunto(s)
Hola,

Con el permiso de roman. Estuve jugando un poco con el tema y he preparado un sencillo ejemplo (que adjunto) a ver qué te parece JerS. ;)

JerS 12-10-2005 17:50:36

Cita:

Empezado por dec
Hola,

Con el permiso de roman. Estuve jugando un poco con el tema y he preparado un sencillo ejemplo (que adjunto) a ver qué te parece JerS. ;)

MUCHAS GRACIAS Dec, tu ejmplo era exactamente lo que necesitaba (Y)..


La franja horaria es GMT +2. Ahora son las 00:32:45.

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