PDA

Ver la Versión Completa : TDBChart


karlita_cb
05-05-2004, 02:02:48
Hola...

Quisiera saber cómo le puedo hacer para que las barras o las rebanadas (en caso de un gráfico circular) de un gráfico que generé con TDBchart sea un "hipervínculo" a otro form, o que me genere ora subgráfica derivada de la barra a la que yo le dé clic...
Gracias

jachguate
05-05-2004, 04:04:10
Las series del TChart disparan eventos. Entre ellos está el evento OnClick, que puede perfectamente servirte para este propósito.

No recuerdo si estos se pueden asignar en tiempo de diseño... pero si no, podes hacerlo en tiempo de ejecución; digamos en el evento onCreate del formulario que contiene el chart.

La forma de hacerlo seria:


Chart1.Series[0].OnClick := Form1SeriesClick;


El evento es del Tipo TSeriesClick. Podes buscar en la ayuda por este término para ver la lista de parámetros y el significado de cada uno.

Hasta luego.

;)

karlita_cb
05-05-2004, 19:20:30
Hola, discúlpame, pero no entiendo bien lo del Form1Seriesclick. Por ahora puedo hacer que me mande algún mensajito, pero lo hago de la sig. manera:

With Series1 do
ShowMessage( XLabel[ValueIndex] + CarriageReturn+
MarkPercent(ValueIndex,True) );

dentro de este procedimiento: procedure TForm1.DBChart1ClickSeries
pero aún no sé como abrir un nuevo formulario

jachguate
06-05-2004, 00:32:20
bueno. Para mostrar un nuevo formulario, si este está en auto-create, basta con hacer Form2.Show - o ShowModal - , suponiendo que el formulario se llama Form2.

Si no está en auto-create, debes crearlo primero con algo como:


if not assigned(Form2) Then
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;


Claro, si en algun momento destruis el formulario, debes asegurarte de hacer que Form2 apunte a nil. Si no, el código fallará.

Hasta luego.

;)

karlita_cb
06-05-2004, 18:40:36
Mira, sí efectivamente me abre un formulario, pero no importa a la barra que le dé clic me abre el mismo formulario, pero quisiera que cada barra abriera un form distinto.... Gracias

jachguate
06-05-2004, 19:05:22
Creo que esto viene dado por ValueIndex en un TBarSeries. Entonces seria algo como:


Case ValueIndex of
1 : FormaValor1.Show;
2 : FormaValor2.Show;
3 : FormaValor3.Show;
end;


Hasta luego.

;)