![]() |
Delphi-Version: 5
TChart fortlaufende anzeige
Erst mal ein Hallo, an das Ganze Forum :)
Ich hoffe ich bin hier richtig, ansonsten verschieben bitte :D Sry, aber die sortierung war mir nicht ganz einleuchtend :D So und nun zum Problem. Ihr kennt doch sicherlich, wenn man auf Task manager geht, Reiter: Leistung, den CPU Grahpen!? Der fügt ja irgendwann neue Punkte an und löscht die ersten so das mann immer eine Minute auf den Schirm hat doch wenn ich ab einer bestimmten länge: Chart1.Series[0].Delete(0); ausführ, werden die nächsten Punkte immer an der gleichen stelle eingefügt. Hat da einer ne Lösung, bei anderen gleichen Themen, die ich über SuFu gefunden habe hat keiner geantwortet, hoffe das mir jemand antwortet :D |
AW: TChart fortlaufende anzeige
Ich male sowas eigentlich immer selbst, aber änderst Du nach dem löschen von [0] auch die X-Werte der noch vorhandenen Einträge?
|
AW: TChart fortlaufende anzeige
Hallo Hotspott,
vielleicht selber eine Ringbuffer anlegen und diesen nach jeden neuen Eintrag in die Series schreiben. Ich benutze TDBChart um Messkurven anzuzeigen. In gewissen Zeitabständen wird bei mir die gesamte Series gelöscht und komplett neu nach den neuen Werten wieder aufgebaut. Das hängt aber immer von der Anzahl der Punkte ab die Angezeigt werden sollen. Bis bald Chemiker |
AW: TChart fortlaufende anzeige
@Bummi
Nein mach ich nicht, sonst hätte ich mir das auch selber erkären können ;) Trodzdem Danke :) @Chemiker Grade das wollte ich um gehen (Code ersparnis). Aber ich denke es wird nicht anders gehen. Auch ein Danke an dich :) Bin trodzdem noch offen für andere Vorschläge |
AW: TChart fortlaufende anzeige
So bekommst Du es hin:
Delphi-Quellcode:
procedure TMakrofenster.Series1AfterAdd(Sender: TChartSeries;
ValueIndex: Integer); var step:Double; const Anzahlsekunden=60; begin step:=DateTimeStep[dtOnesecond]*Anzahlsekunden; With Sender.GetHorizAxis do { <-- with the Horizontal Axis... } Begin Automatic := False; //always show the last time Maximum := Sender.XValues.MaxValue; // show only last desired interval Minimum := Maximum - step; end; // Delete all "invisible" points While (Sender.Count>0) and (Sender.XValues[0] < Sender.GetHorizAxis.Minimum) do Sender.Delete(0); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 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