Создаю графики (то есть в терминологии компонента chart - Series) так:
- Код: Выделить всё
var
n_can: integer;
diagr: array [0..48] of TSerie;
for n_can:=0 to 23 do
begin
diagr[n_can]:= TSerie.Create(form1.Chart1);
diagr[n_can].ShowLines := true;
diagr[n_can].ShowPoints := false;
diagr[n_can].ShowInLegend:=false;
end;
А рисование происходит в такой процедуре:
- Код: Выделить всё
procedure DemChart();
var
n_i, n_can: integer;
begin
form1.Chart1.Series.Clear;
for n_can:=0 to 23 do
begin
diagr[n_can].clear;
for n_i:=1 to N_izm-2 do
diagr[n_can].AddXY(LKLVal[n_i],FDVal[n_can,n_i], IntToStr(n_can), Color(n_can));
form1.Chart1.AddSerie(diagr[n_can]);
end;
end;
Где LKLVal[n_i] - массив значений по координате X (общий для всех графиков), а FDVal[n_can,n_i] - массив значений по координате Y для каждого из графиков.
Что я делаю не так? Как мне добиться, чтобы память очищалась? form1.chart1.series.Free; и for n_can:=0 to NCH-1 do diagr[n_can].free; успехом не увенчались - первая же попытка отрисовки графиков после очистки памяти приводит к ошибке.
Модератор: учимся правильно оформлять сообщения