Ver Mensaje Individual
  #1  
Antiguo 13-06-2011
ElGatitoTapatio ElGatitoTapatio is offline
Miembro
 
Registrado: nov 2006
Posts: 38
Reputación: 0
ElGatitoTapatio Va por buen camino
Exepcion al cerrar form con Grafico (TChart)

Saludos a todos,

nuevamente requiriendo de su ayuda para solucionar una problema que me trae loco.

Estoy desarrollando un sistema que muestra graficos a partir de informacion consultada. Las series las genero de forma dinamica y se generan correctamente el problema es cuando cierro la ventana ya que me arroja una exception de memoria. Esto solo me sucede cuando ejecute la instruccion de limpiar las series, sin embargo si es necesario ejecutarla ya que pueden haber varias consultas de diferentes datos.

A continuacion les agrego parte del codigo en cuestion

Código Delphi [-]
var
    SeriePastel,SeriePastel2 : TPieSeries;
.....
 
    for i:= 0 to 2 do
      with ADOQuery_Consultas do
        begin
          Close;
          With SQL do
           begin
             Clear;
             Add('Consulta de datos');
             Open;
            end;
          SeriePastel2:= TPieSeries.Create(self);
          SeriePastel2.Title:= Fields[1].AsString;
          SeriePastel2.ExplodeBiggest:= 30;
          if TChart(frm_medidas_clave.FindComponent('Chart_3_2_turno'+IntToStr(i))).SeriesList.Count > 0 then
            TChart(frm_medidas_clave.FindComponent('Chart_3_2_turno'+IntToStr(i))).SeriesList.Clear;      // <----- si yo no agrego esta linea no me arroja el error
          TChart(frm_medidas_clave.FindComponent('Chart_3_2_turno'+IntToStr(i))).AddSeries(SeriePastel2);
          for s:= 1 to RecordCount do
            begin
              TChart(frm_medidas_clave.FindComponent('Chart_3_2_turno'+IntToStr(i))).Series[0].Add(Fields[0].AsFloat,Fields[1].AsString);
              Next
            end;
          with TChart(frm_medidas_clave.FindComponent('Chart_3_2_turno'+IntToStr(i))) do
            begin
              with Series[0] do
                begin
                   Shadow.Visible:= False;
                   ValueFormat:=  '##0.##%';
                   Marks.Style:= smsPercent;
                 end;
              Legend.LegendStyle:= lsAuto;
              Legend.Alignment:= laBottom;
              Legend.Visible:= True;
              Title.Caption:= 'Punto Evaluado';
              View3D:= True;
              Title.Caption:= Turno[i];
              Visible:= True;
             end;
        end;

De antemano les agradesco su ayuda y les envio un saludo!!

Gracias
Responder Con Cita