Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
29. Mär 2010
Moin !
Naja, passiert ja auch schon alles im Thread.
Bei einem TChart wird uns nichts anderes übrig bleiben, vermute ich mal :)
Je länger ich da überlege, desto mehr kommt mir die Frage ob das Synchronize mit dem MainForm nicht belanglos ist.
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
29. Mär 2010
Moin !
So ich habe jetzt mal alles in ein Projekt gegossen. Erstellt ist es mit D2010, aber ich denke es sollte auch mit anderen Delphi Versionen nutzebar sein.
Man kann mit dem Button "Add Input" an die verkettete Liste Daten anhängen. Das geht recht flott und der Output Thread arbeitet die Liste dann wieder ab.
Parallel gibt es einen Timer der jede Sekunde DatenKette.GetLive.Value1...
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
27. Mär 2010
Moin !
Bist du dir da sicher?
Sagen wir mal es gibt einen Kommunikationsthread und die Instanz der Datenklasse liegt im MainForm und damit ja eigentlich auch im MainThread.
Wenn ich nun das Add aus dem Kommu-Thread raus aufrufe, läuft das dann wirklich im Kommu-Thread ?
Das geht so nicht. Man muss die Daten schon im TChart eintragen um die Kurve zu erzeugen. Das macht die Sache...
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
25. Mär 2010
Moin !
@himitsu:
Vielen Dank für deine Erweiterung. Das klappt nun erstaunlich gut :thumb:
Auch die Speicherbelastung bleibt wie erwartet niedrig. :)
Hätte dann noch ein paar wetere Fragen (und hoffentlich gehe ich euch nicht zu sehr auch den Sac* :roll: ).
1) Event an Thread
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
25. Mär 2010
Moin !
Das wäre durchaus machbar.
Ok da hast du Recht. Dafür sollte man die letzten Werte extra vorhalten. Aber erstmal musses ja funzionieren ;)
Ich denke der Code kommt noch ein bisserl durcheinander mit FFirst und FLast. Denn kann ja nicht sein das FLast noch einen Pointer beinhaltet obwohl der einzige dateneintrag gerade verarbeitet wurde:
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
25. Mär 2010
So nochmal ich.
Der Code lässt sich nun schon mal übersetzen. Danke Dirk.
Funktioniert nur noch nicht so wie gedacht ... :)
Beim ersten Eintrag geht alles glatt. Das Event wird gesetzt, der Thread rennt an, er verarbeitet die Daten und macht das Dispose.
Wenn ich einen zweiten Eintrag hinzufüge macht der Thread aber nüscht mehr auch wenn das event abgefeuert wird.
Laufe tut der...
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
25. Mär 2010
Moin !
Dann will ich mal das ganze Kostrukt beschreiben um das es geht ...
Bei uns geht es um die Verarbeitung von (zumeist seriellen - RS232/USB) Daten. Diese Daten kommen z.B. von einem Datenlogger und liefern - sagen wir mal Spannung, Strom, Höhe.
Die Schnittstelle (bzw. die Komponente dazu) ist in dem Fall dann also der Datenlieferant und benutzt das TDataClass.Add um Daten...
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
25. Mär 2010
Moin !
der Code bringt noch ne Menge Fehler. So kann er mit dem TEvent so nichts anfangen.
Das kommt immer Thread.pas(53): E2010 Inkompatible Typen: 'TEvent' und 'Cardinal'
oder umgekehrt
Das Thread Create ist wohl auch nicht ganz sauber, aber das bekomme ich schon hin.
Könntest du mir mal ganz kurz erklären welche Rolle TEvent generell spielt?
Sehe ich das richtig, dass das eine...
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
25. Mär 2010
Moin !
wie würde ich das tun ?
Würde das aber nicht trotzdem Speicherverbrauch bedeuten für die leeren Einträge?
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
25. Mär 2010
Moin Tryer,
das klappt bei mir leider nicht so ganz.
Denn bei mir müssen zwei "worker" aus der Liste lesen - ggf. sogar mehr.
Ich habe es jetzt mal mit TList versucht.
Meine Hoffnung war das ich dort Pointer einhängen kann. Das klappt auch.
Danach habe ich die Einträge der Liste auf NIL gesetzt. Aber es wird kein Speicher freigegeben.
Das passiert vermutlich nur bei Delete.
Forum: Sonstige Fragen zu Delphi
Delphi
by moelski,
24. Mär 2010
Moin !
Erstmal danke für die Antworten bis hierher.
Genau das möchte ich eben vermeiden, das ich in den Daten noch rumsuchen muss.
Ich möchte eben an der Liste Daten anfügen z.B. mit einem Thread. Und parallel dazu möchte ich Teile der Daten auswerten lassen. Dazu wäre es eben sehr praktisch einen fortlaufenden festen Index zu haben. Denn so könnte ich der auswertenden Routine sagen...