Forum: Object-Pascal / Delphi-Language
Delphi
by Ralf Kaiser,
14. Dez 2009
Wie wäre es denn mit
TChart.RemoveSeries(ASeries: TCustomCharSeires);
bzw. (überladen):
TChart.RemoveSeries(Index: integer);
Ich denke mal, dass man die angebotenen Methoden benutzen sollte anstatt die Teile einfach mit .Free freizugeben!
Forum: Object-Pascal / Delphi-Language
Delphi
by Ralf Kaiser,
14. Dez 2009
Von welchen Chart-Objekt reden wir hier eigentlich? Von welcher Basisklasse ist "Series" abgeleitet? (TCollection?)
Eigentlich sollte das "Series" Objekt doch Methoden zum löschen haben (Delete() oder Remove()?).
Forum: Object-Pascal / Delphi-Language
Delphi
by Ralf Kaiser,
14. Dez 2009
Also dawürde ich so verstehen, dass man die Elemente der Liste nicht manuell (!!!) mit .Free freigeben sollte sondern dazu die Methoden benutzen soll die das Series-Objekt zur verfügung stellt. Wahrscheinlich werden in dem Series-Objekt noch andere Verwaltungsdaten über die enthaltenen Objekte gespeichert die beim Löschen eines der Elemente noch angepasst werden.
Forum: Object-Pascal / Delphi-Language
Delphi
by Ralf Kaiser,
10. Dez 2009
Dein Problem ist, dass Assigned() den zu prüfenden Zeiger garnicht zu sehen bekommt, da er nicht da ist.
Beispiel:
OK := Assigned(Chart1-Series) bedeutet wenn es genügend Elemente gibt:
Hol dir das 5. Element
Übergib das "geholte" Element an Assigned()
Weise das Ergebnis der Variablen OK zu
Forum: Object-Pascal / Delphi-Language
Delphi
by Ralf Kaiser,
10. Dez 2009
Gibt es kein "Series.Count"? - Wenn ja zuerst überprüfen bevor du einen Index "Series" benutzt.
Ich gehe mal davon aus, dass beim löschen einer Datenreihe das dahinterliegende Objket einfach mittels Delete aus der Collection/Liste (was ist es??) entfernt wird. In diesem Fall gibt es kein "Series" mehr. Mit Assigned prüfst du ja nach, on "Series" unleich NIL ist aber nicht, ob dieses Element...