PDA

Ver la Versión Completa : Valor de un LineSeries en la posicion del mouse


andiget
14-07-2007, 23:30:54
Cordial Saludo:

Tengo una aplicacion q contiene un Chart con un LineSeries, deseo que al mover el mouse sobre este me diga la el valor en X & Y de la serie en la posicion X del Cursor.

En el eje X tengo valores en fechas y el eje y son valores en double

Espero que puedan ayudarme ps es sumamente importante

Gracias

b3nshi
26-07-2007, 17:49:28
Mmm... veamos... a decir verdad no creo q la solucion q vaya darte en este momento sea la mas optima... pero creo q puede ayudarte un poco...
No uso hace mucho BDS y ahora solo programo con TD por lo q no puedo probar el Tchart, ni asegurarte q funcione, pero bueno... te cuento q yo realizo mis graficas en un Tpaintbox e hice algo parecido... pero veamos como lo puedes hacer...

Cuando hagas clic en el componente capturas las coordenadas del clic... (x,y) y las guardas por ejemplo en una variable pointer.

Luego para obtener las coordenadas dentro del componente lo q haces es restar a esas coordenadas la posicion top y left del componente tchart para asi obtener las coordenadas dentro del componente.

Desde lo q tendrias q hacer es una regla de tres... digamos algo asi... para el eje x:
anchodelcomponente ---- 200pesos (si es q fue plata lo q queres saber)
posicionx del clic ---- x = Entonces asi obtendrias la cantidad de plata q equivale a esa posicion...

y lo mismo para y. Pero ten en cuenta q tendrias q restarle al ancho del componente el tamaño aproximado de los margenes... y detalles como esos...

Luego para saber si hizo clic sobre la grafica puedes hacerlo analizando el color del pixel... es decir:


if control.canvas.pixels[x,y] == colordegrafica then
begin
{Recien aqui haces todos los calculos}
{y mostras el resultado}
end;


No se si el tchart tiene la propiedad canvas... supongo q si pero en el caso de no tenerlo podes usar el canvas del formulario para saber si ese pixel tiene el color de la linea de la grafica... de todos modos estoy casi seguro q si lo tiene ;)

Bueno espero q esto te ayude alguito...

{Saludos}