Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2021
Fran Moreno Fran Moreno is offline
Registrado
 
Registrado: feb 2021
Posts: 6
Poder: 0
Fran Moreno Va por buen camino
Problemas con el evento OnMouseDown de TImage

Hola a todos. Quisiera hacer una pregunta a ver si alguien me puede contestar. Antes que nada decir que solo soy un programador aficionado.
Me ocurre lo siguiente: estoy haciendo un programa en el que dibujo una línea de tiempos, similar a la de los programas de edición de vídeo y/o sonido, que sirve para introducir una serie de datos en el programa en forma gráfica, es decir, el usuario marca diversos puntos en la línea de tiempos que pasan al programa los parámetros de tiempo y nivel, algo como lo que se hace en los programas de edición de sonidos para determinar el volumen del sonido a lo largo del tiempo. Las marcas de nivel entran usando el evento OnMouseDown, que me da los parámetros de posición del puntero.
Dicha línea de tiempos debe poder extenderse hasta una hora de duración, que corresponde a 36000 pixeles de la imagen, ya que cada pixel corresponde a una décima de segundo en la línea de tiempos. También debo desplazar la línea de tiempos en horizontal, dentro de la ventana para poder verla en su totalidad y lo hago también, capturando la imagen en el punto donde se pulsa el botón izquierdo del ratón, dentro del evento OnMouseDown, y arrastrándola con el ratón junto con un panel contenedor.
Todo esto funciona sin problemas siempre que la imagen tenga menos de 32768 pixeles, pues, por alguna razón que desconozco, el evento OnMouseDown del TImage, no se produce si se pulsa más allá del pixel 32767 de la imagen. Esto se traduce en que solo puedo arrastrar la imagen, o introducir marcas en ella, si hago la operación pulsando con el botón izquierdo del ratón, antes del pixel 32768. No es un problema de código, sino que el evento no se genera (Lo he comprobado). En cambio el evento OnContextPopUp del TImage, que también lo utilizo para abrir un menú contextual, si se produce sin problemas, hasta el último pixel de la imagen.
¿Alguien sabe porque pasa esto? 32767 es el valor máximo de una variable de tipo SmallInt, pero yo no uso ninguna variable de este tipo en mi programa. Sospecho que el evento OnMouseDown del TImage, debe utilizar internamente, alguna variable de este tipo. ¿Alguien sabe algo de esto?, ¿Se podría corregir para que el evento OnMouseDown se produzca también a partir del pixel indicado, tal como lo hace el evento OnContextPopUp?
¡Gracias de antemano!
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Invocar OnMouseDown Angel.Matilla C++ Builder 2 12-05-2020 10:48:38
Evento onChange en TImage MAXIUM Gráficos 3 08-03-2010 03:02:11
codigo onmousedown Cosgaya Varios 5 25-11-2005 17:15:47
Detectar OnMousedown en un form Jan_polero OOP 4 07-02-2005 12:39:02


La franja horaria es GMT +2. Ahora son las 15:47:38.


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