Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #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
Difícilmente podrás hacer algo que no lleve de una u otra forma a la idea que te describió Neftali. Cuando dibujas algo en un canvas, éste no distingue las cosas que hayas puesto en el, él sólo "ve" un conjunto de pixeles. En este sentido es totalmente análogo a dibujar en un lienzo real; tú puedes dibujar una montaña pero ya no hay manera de moverla como no sea borrándola y volviéndola a dibujar.

Así pues, mi recomendación es que comiences a pensar en el hilo de ideas de Neftali.

Yo me enfrentaría a la tarea paso a paso. El primero de ellos posiblemente sea el poder determinar sobre qué objeto estás parado. Digamos que dibujas un rombo; en algún lugar guardas las coordenadas que hayas usado para dibujarlo. Cuando haces click en el canvas deberás tener una función del estilo de

Código Delphi [-]
function PuntoEnRombo(X, Y: Integer; parámetros): Boolean;

donde parámetros son los parámetros para dibujar el rombo en específico.

Windows maneja el concepto de regiones que quizá te sirva ya que al tiempo de dibujar un objeto puedes establecer una región similar y luego usar una de las funcones de la API de Windows como PtInRegion (o nombre similar) que te facilitarían la codificación de una función como la que te describo.

Después tendrás que manejar la lista de imágenes. Cada elemento de la lista debe contener la información necesaria para redibujar el objeto correspondiente. En el evento OnPaint o similar del canvas que uses deberás repasar la lista y dibujar cada uno de los objetos en ella representados.

Luego tendrás que meterte con el movimiento de los objetos. Como ya te indica Neftali, usarás una función que determine qué objeto estás tomando. Posiblemente aquí deberás crear un bitmap que copie la imagen correspondiente y usar algo como BitBlt de la API de Windows para ir moviendo el bitmap conforme se desplace el puntero del ratón. Al momento de soltarlo redibujas todo el canvas.

Claro que jamás he hecho algo así pero son las cosas que comenzaría a pensar, a reserva claro, de que en el camino me de cuenta de que hay errores de concepción. Pero por alguna parte se empieza.

// Saludos
Responder Con Cita
 



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 13:49:08.


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