![]() |
Chart Serie Freigeben, gibt nicht frei!
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; |
AW: Chart Serie Freigeben, gibt nicht frei!
Die Series ist vielleicht noch in Form1.Controls enthalten?
|
AW: Chart Serie Freigeben, gibt nicht frei!
Mit neuen Projekt getestet.
Unter Firemonkey Desktop funktioniert es und unter Firemonkey Mobile nicht! |
AW: Chart Serie Freigeben, gibt nicht frei!
Es wird verrückt einfaches Beispiel selbe Problem
Code:
Kann mir wer dieses Beispiel testen?
Button := TButton(FindComponent('Button2'));
if Button <> nil then Button.Free; Button := TButton.Create(Self); Button.Parent := self; Button.Name := 'Button2'; |
AW: Chart Serie Freigeben, gibt nicht frei!
Problem mit der Series gelöst!
Statt Series := TLineSeries.Create(Chart); Kommt Series := TLineSeries.Create(nil); Da finde ich die series übers Chart! Beim Button funktioniert: Statt Button.Free; Kommt RemoveComponent(Button); Wenn Button := TButton.Create(Self) ist. Das selbe bei der Series funktionert aber nicht, nur wenn TLineSeries.Create(nil) dann funktioniert das Free.
Code:
Series := FindSeries('S1', idx);
if Series <> nil then begin Chart.SeriesList.Delete(idx); RemoveComponent(Series); //oder Series.Free; end; Series := TLineSeries.Create(nil); // funktioniert nicht TLineSeries.Create(Chart); Series.Name := 'S1'; Series.XValues.DateTime := True; Chart.AddSeries(Series); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz