Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-01-2008
Haddock Haddock is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
Haddock Va por buen camino
click en el canvas

Hola a tod@s:
Tengo un form con una serie de jpg dibujados directamente en el canvas de un tpanel. Quiero que al hacer click sobre cada uno de ellos se haga la imagen mas grande. Como puedo dectertar las regiones para agrandar sobre la que se ha hecho click?

Gracias y saludos
Haddock
Responder Con Cita
  #2  
Antiguo 15-01-2008
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Y no seria posible usar unos cuantos TImage, en lugar de pintarlos en el Canvas del TPanel tu mismo? Ya que los TImage te ofrecen los eventos: "OnMouseMove", "OnMouseEnter", etc... y que te ayudarían a detectar si el cursor esta encima de alguna de las imágenes.

Saludos.
Responder Con Cita
  #3  
Antiguo 16-01-2008
Haddock Haddock is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
Haddock Va por buen camino
xEsk,
Las imágenes van cambiando de 5 en 5 y no te puedes imaginar la diferencia de rendimiento que hay entre utilizar los TImage y hacerlo directamente sobre el canvas, por eso los dibujo directamente al canvas, pero sigo necesitando tener un onclick sobre ellas

Saludos
Haddock
Responder Con Cita
  #4  
Antiguo 16-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Determinar sobre cual se hizo clic es aritmética simple. Si las imágnes son de ancho/alto fijo, es mucho mas sencillo aún:

Como una idea:

Código Delphi [-]
TForm1 = class(TForm)
//...
private
  FLastMousePos: TPoint;
end;

implementation
//...

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  FLastMousePos.X := X;
  FLastMousePos.Y := Y;
end;

procedure TForm1.Panel1Click(Sender: TObject);
var
  IndiceImagen: Integer;
begin
  IndiceImagen := (FLastMousePos.Y div AltoEstandar) * ImagenesPorFila
                        + (FLastMousePos.X div AnchoEstandar);
  ClickEnImagen(IndiceImagen);
end;

Claro que hay que probarlo, y afinarlo... pero con eso ya te irás encaminando.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 16-01-2008
Haddock Haddock is offline
Registrado
 
Registrado: dic 2007
Posts: 5
Poder: 0
Haddock Va por buen camino
jachguate,
Eso tiene buena pinta, ta noche lo pruebo y te digo

Gracias

Haddock
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Canvas Does Not Allow Drawing ebeltete Gráficos 21 15-01-2007 16:07:25
implmentar Articulo click..click..run Crash ASAPLTDA OOP 0 21-01-2006 16:16:08
Click...click. tap. RUN? Crash! Un mejor RAD mamcx Conexión con bases de datos 0 13-04-2005 20:45:35
Problem con Canvas deimonio Gráficos 3 31-12-2003 10:55:02
Canvas???? craven Gráficos 2 17-05-2003 13:26:02


La franja horaria es GMT +2. Ahora son las 18:43:27.


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