Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TChart aktualisieren bei Änderung des StringGrids. (https://www.delphipraxis.net/121887-tchart-aktualisieren-bei-aenderung-des-stringgrids.html)

Sven M. 6. Okt 2008 15:27


TChart aktualisieren bei Änderung des StringGrids.
 
Hallo zusammen,
ich habe zwar schon etwas Erfahrung in Delphi, scheitere aber im Moment an folgender Aufgabenstellung.
Ich möchte, dass sobald sich die Daten in einem StringGrid ändern, dass diese auf ein Chart übertragen werden. Jetzt hätte ich gedacht, dass das mit einer OnChange-Methode geht. Ginge sicherlich auch - so es eine solche Methode für das StringGrid denn gäbe...:D

Habt ihr 'ne Idee, wie ich das genannte Vorhaben realisieren könnte?
Hintergrund ist, dass ich sich das SG alle 5 Sekunden durch einen weiteren Messwert erweitert und dieser natürlich auch auf das Chart übertragen werden soll. Da ich auch bereits gespeicherte Daten wieder einlesen kann, möchte ich, dass das Diagramm auch dann sofort wieder aktualisiert werden soll.


Besten Dank im Voraus,
Sven

ConstantGardener 6. Okt 2008 17:04

Re: TChart aktualisieren bei Änderung des StringGrids.
 
Hallo Sven,

warum fügst Du den Wert nicht der Series zu (ADD) wenn Du auch das Stringgrid erweiterst ? Wenn sich mehrere ändern solltest Du die Series löschen und komplett neu füllen. Das könnte bei vielen Daten natürlich etwas langsam werden. Dann solltest Du nur die geänderten Daten direkt ändern. Wenn Du den User Daten im SStringgrid ändern lässt könntest Du auch im KEYUp des StringGrid einen Timer Starten der nach z.B. 5 Sek die SERIES neu einliest (des Timer bei Keyup erst enabled=false und dann enabled=true).

mfg

CG

Sven M. 7. Okt 2008 10:04

Re: TChart aktualisieren bei Änderung des StringGrids.
 
Hi CG,
habe mich wohl etwas blöd ausgdrückt...;)

Wenn ich die Daten generiere, kann ich sie ohne Probleme in das Chart schreiben. Daran hakt's nicht. Das Problem ist, wenn ich meine Daten aus der Datei einlese, kann ich sie zwar in das StringGrid laden, jedoch nicht in das Chart schreiben.
Das Chart bleibt dann schlicht und ergreifend leer.
Code sieht folgendermaßen aus:

Delphi-Quellcode:
FormGrafik.Series1.clear;
FormGrafik.Series2.clear;
//FormGrafik.Series3.clear;

if OpenDialog.execute then
   LoadData (StringGridDaten, OpenDialog.filename, messwert); //Lade-Routine: schreibt Daten aus Textdatei mit Hilfe von StringList in Record 'messwert' und StringGrid
datensaetze:=StringGridDaten.RowCount-1; //wäre eleganter, wenn ich die Anzahl der Datensätze aus den Records lese, da da ja auch die Daten für's Chart herkommen, oder?
For i:=1 to datensaetze do
   begin
       FormGrafik.Series1.Add(messwert[datensaetze-1].o2wert);
       FormGrafik.Series1.Add(messwert[datensaetze-1].Temp);
   end;
Warum funktioniert das nicht? Wo ist mein Denkfehler? Klärt mich bitte auf....!!:D


Beste Grüße,
Sven

ConstantGardener 7. Okt 2008 10:13

Re: TChart aktualisieren bei Änderung des StringGrids.
 
Hallo Sven,

du fügst

1. immer den selben Wert ein MESSWERTE[Datensaetze-1] uns
2. immer in Series1 -- Temp Werte sollten bestimmt in Series2 oder

mfg CG

Sven M. 7. Okt 2008 10:32

Re: TChart aktualisieren bei Änderung des StringGrids.
 
Hi CG,
es lag natürlich daran, dass ich immer den gleichen Wert eingefügt habe. Muss als Index natürlich i verwenden. Und die Werte schreibe ich in unterschiedliche Graphen. Das hatte ich nur falsch abgetippt, da ich auf dem Rechner, auf dem ich progge, noch keinen Internetanschluss habe...;)



Auf jeden Fall allerbesten Dank für deine Hilfe...:-)
Manchmal sieht man halt den Wald vor lauter Bäumen nicht... :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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