Tchart y cálculo de valores en coordenadas del ratón (mouse)
Bueno, antes de nada comentar que no se porque el código para colocar imágenes está desactivado. En este post van dos imágenes, así q para verlas hay que hacer click en el enlace, y el post queda un poco deslucido. Solo es un comentario, nada más. Bueno, al grano :)
Tchart con varias series dibujadas. Mi intención es intentar calcular el valor de cada serie en el corte entre la serie y la X del ratón. Me explico, cuando paso el ratón por la gráfica este tiene unas coordenadas X e Y. La coordenada Y no me interesa, pero la X si ya que si pongo el puntero en un pixel determinado quiero que se me calcule el valor de cada serie a la misma altura X que la del ratón. Obtener las coordenadas X e Y del ratón es sencillo: Código:
chartGraficos.Canvas.Pixels[i,j]; Las coordenadas del canvas, o tchart, o lo que sea empiezan en la flecha azul superior de la imagen. Las coordenadas de la flecha azul inferior seguro que son facilmente calculables. Pero lo que a mi me interesa son las coordenadas de las flechas rojas, es decir las coordenadas en el canvas del origen (el punto 0,0) y las coordenadas de la parte de arriba del gráfico, ya que como el gráfico es autoajustable al mayor de los valores de la gráficas, al tener el mayor valor de la gráfica y su x,y en el canvas y al tener el x,y en el canvas del 0,0 podemos calcular el valor en cada punto mediante una regla de tres ¿Me explico bien? Pasemos al segundo problema, dando por hecho que hemos resuelto el primero. Echad un ojo a esta otra imagen: Aquí muestro un zoom hecho al seleccionar con el ratón una parte del gráfico. ¿Ahora como hago para calcular los valores? Porque ya no tengo el punto 0,0, no el mayor valor de las series. Aquí de momento no tengo ideas para intentar solucionarlo. ¿Alguna idea? Espero haber planteado bien el problema para q se entienda. Gracias de antemano por las posibles respuestas :) |
Código:
|
Hey Rounin esto tiene muy buena pinta, busqueda binaria, interpolación...unas units muy útiles. Pero tengo un problema, en el IntegerFn y en el DoubleFn hay una directiva include
Código:
{$INCLUDE Fn.inc} Muchas gracias de antemano, si esto funciona va a quedar muy muy chulo :) |
¿Será porque uso Delphi5? ¿Alguien con otra versión más actual tiene ese fichero?
|
Eso es mi archivo, un parte de libreria de algoritmos genericos.
|
Esto funciona Rounin, eres un crack! :), solo me queda configurarlo para que me muestre las coordenadas de las gráficas que tengo pintadas y poco más.
Muchas gracias por la ayuda, este post puede ayudar a mucha gente que quiere hacer algo similar con el TChart. |
¿Se puede saber qué serie está debajo del puntero del ratón?
Reflotando este hilo de hace ya casi 9 meses, me gustaría preguntar al foro si se puede saber qué serie es la que está siendo apuntada por el ratón en ese momento.
Esto que pregunto es útil cuando se representan muchas series en un gráfico de líneas, por ejemplo 20 ó 30 y aún con los colores no son suficiente para distinguir tantas líneas. Entonces, tú pones el ratón encima de una serie y en el hint o en un label, te dice qué serie es esa. Lo que hace Excel con los gráficos, vamos. Gracias de antemano. Un saludo. |
Hola Angel Fernandez, puedes utilizar la función Clicked de la serie, ejemplo, digamos que tenemos dos series (Series1, Series2) en un Chart.
Estoy utilizando el evento OnClickSeries, por lo que se va ejecutar cuando hagas click sobre alguna de las series, pero tu puedes utilizar otro evento como OnMouseMove... Saluditos |
Muchas gracias Caro, tu código me ha resuelto el problema.
Con tu permiso lo he depurado un poco. Muestra en un hint el título de la serie sobre la que hacer clic: Colocar este código en el evento chart1.clickseries
Un saludo. |
No tienes que pedir permiso amiguito, me alegra que te haya servido ;).
Saluditos |
La franja horaria es GMT +2. Ahora son las 02:03:07. |
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