Ver Mensaje Individual
  #3  
Antiguo 24-12-2010
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Reputación: 22
Toni Va por buen camino
Por el fracmento de codigo que nos enseñas veo que gestionas mal los punteros, ya que estas realizando varias (x) asignaciones a un mismo puntero dentro del bucle.

Es decir si x=3, estas haciendo 3 asignaciones de memoria al puntero SeriesList con el problema que no podras liberar la memoria despues puesto que el puntero solo apuntara a la ultima asignacion de memoria.

Código Delphi [-]
//grafico es el TChart
TFastLineSeries *SerieLineas;
grafico->SeriesList->Clear();
for(indice=1;indice{
           //creo las series dependiendo de x
           SerieLineas=new TFastLineSeries(grafico);
           SerieLineas->ParentChart=grafico;
           SerieLineas->LinePen->Width=3;
           SerieLineas->Marks->Visible=true;
           SerieLineas->Marks->FontSeriesColor=true;
           SerieLineas->Marks->Font->Size=7;
           SerieLineas->Marks->Transparent=true;
           SerieLineas->Marks->Style=smsValue;
           SerieLineas->Color=taula_colors[indice];
           SerieLineas->Title=aux;

           grafico->Series[indice]->Add(tal...)
}

De esta otra forma puedes despues liberar la memoria que asignaste en cada SerieLineas.

Código Delphi [-]
//grafico es el TChart
TFastLineSeries *SerieLineas[10];  /* suponiendo que x nunca sera mayor de 10 */
grafico->SeriesList->Clear();
for(indice=1;indice{
           //creo las series dependiendo de x
           SerieLineas[indice-1]=new TFastLineSeries(grafico);
           SerieLineas[indice-1]->ParentChart=grafico;
           SerieLineas[indice-1]->LinePen->Width=3;
           SerieLineas[indice-1]->Marks->Visible=true;
           SerieLineas[indice-1]->Marks->FontSeriesColor=true;
           SerieLineas[indice-1]->Marks->Font->Size=7;
           SerieLineas[indice-1]->Marks->Transparent=true;
           SerieLineas[indice-1]->Marks->Style=smsValue;
           SerieLineas[indice-1]->Color=taula_colors[indice];
           SerieLineas[indice-1]->Title=aux;

           grafico->Series[indice]->Add(tal...)
}

..................


for(indice=1;indice{
           //elimino las series dependiendo de x
           delete SerieLineas[indice-1];
}

Espero se sirva de ayuda.
__________________
Saludos,

Bitman
Responder Con Cita