Hallo,
ich frage Daten aus einer Datenbank ab und stelle sie in einem Tchart mittels TLineSeries dar.
Bei der ersten Abfrage werden 24 Punkte in einer Schleife zugewiesen: chart_max.AddXY(iZeiger, Serie.Serie1.Wert_max[iZeiger]);
Der Chart wird auch richtig dargestellt (00_24_Punkte.png).
Nächste Abfrage mit 48 Punkten wird auch richtig dargestellt (01_48_Punkte.png),
bei der dritten Abfrage mit 24 Punkten wird aber der vorherige Chart nicht gelöscht (02_24_Punkte.png)
Frage:
Wie muss ich das richtig machen, das vor dem erneuten zuweisen
von Messpunkten der alte Chart zurückgesetzen bzw.gelöschen wird?
Danke
Tchart Neuzeichnen
-
- Beiträge: 129
- Registriert: Sa 25. Mai 2013, 07:43
- OS, Lazarus, FPC: Win7_x64 (FPC:4.7.1)
- CPU-Target: 32Bit
Tchart Neuzeichnen
- Dateianhänge
-
- 02_24_Punkte.png (3.97 KiB) 675 mal betrachtet
-
- 01_48_Punkte.png (3.99 KiB) 675 mal betrachtet
-
- 00_24_Punkte.png (2.98 KiB) 675 mal betrachtet
Vbxler
-------------------------
-------------------------
Re: Tchart Neuzeichnen
Du könntest einfach ein LineSeries.Clear aufrufen, bevor du die LineSeries wieder neu füllst. Was ich persönlich für die beste Variante halte.
Du kannst aber auch die vorderen Punkte stehen lassen, indem du einfach die Punkte von hinten nach vorn löschst z.B.:Dies hat den Nachteil, falls sich die Daten in der Datenbank in der Zwischenzeit geändert haben, sind immer noch die alten Daten im Chart zu sehen.
Du kannst aber auch die vorderen Punkte stehen lassen, indem du einfach die Punkte von hinten nach vorn löschst z.B.:
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject); //Füllen
var
i, SomeCount: Integer;
begin
SomeCount := 48;
for i := Chart1LineSeries1.Count to SomeCount - 1 do
Chart1LineSeries1.AddXY(i, Random(100));
end;
procedure TForm1.Button2Click(Sender: TObject); //Leeren
var
i, SomeCount: Integer;
begin
SomeCount := 24;
while Chart1LineSeries1.Count > SomeCount do
Chart1LineSeries1.Delete(Chart1LineSeries1.Count - 1);
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 129
- Registriert: Sa 25. Mai 2013, 07:43
- OS, Lazarus, FPC: Win7_x64 (FPC:4.7.1)
- CPU-Target: 32Bit
Re: Tchart Neuzeichnen
Danke für die Hilfe!
Ich lösche jetzt vor der Neuerstellung die gesamte Serie:
Funktioniert bestens!
Ich lösche jetzt vor der Neuerstellung die gesamte Serie:
Code: Alles auswählen
while Chart1LineSeries1.Count > 0 do Chart1LineSeries1.Delete(Chart1LineSeries1.Count - 1);
Vbxler
-------------------------
-------------------------