Einzelnen Beitrag anzeigen

Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#1

Chart Serie Freigeben, gibt nicht frei!

  Alt 10. Jul 2014, 16:38
Ich rufe diese Funktion 2 mal auf.
Beim 2ten mal: Ich komme in Series.Free rein bekomme, Series wird auch nil aber danach beim Namen zuweisen bekomme ich die Fehlermeldung "Die Komponente mit der Bezeichnung 'S1' existiert bereits" FindSeries funktioniert auch richtig.
Code:
   
procedure TfrmTestProperties.cbGroupChange(Sender: TObject);
var Series : TLineSeries; idx : Integer;
begin
  Series := FindSeries('S1', idx);
  if Series <> nil then
  begin
    //       Chart.SeriesList.Delete(idx); auch diese zeile bringt nix
    Series.Free;
  end;
  Series := TLineSeries.Create(Chart);
  Series.Name := 'S1';
  Chart.AddSeries(Series);
end;

function TfrmTestProperties.FindSeries(Name: string; var idx: Integer) : TLineSeries;
var i: Integer;
begin
  result := nil;
  idx := -1;
  for i := 0 to Chart.SeriesCount - 1 do
    if Chart.Series[i].Name = Name then
    begin
      result := TLineSeries(Chart.Series[i]);
      idx := i;
      break;
    end;
end;

Geändert von Koloss (10. Jul 2014 um 16:51 Uhr)
  Mit Zitat antworten Zitat