![]() |
Re: Werte übergeben aus einem 2. Thread
Letztendlich müsste das so funktionieren:
Delphi-Quellcode:
Natürlich müsstest du bei Anwendung der ersten Methodeprocedure TmyThread.DoSynchronizeCommandEvent begin { Hier das für die Anwendung bestimmte Event aufrufen } fCurrentCommand.Event; end; { Hierhin wird das Event des Commands umgeleitet, kurz vor Ausführung des Commands muss dem Thread natürlich dessen Event übergeben werden } procedure TmyThread.CommandEvent(ACommand: TCommand); begin { Nun entweder hierüber das echte Event des Commands aufrufen, dies muss dann sychronisiert erfolgen... } Synchronize(DoSynchronizeCommandEvent); { ODER hier das eigene Event des Threads aufrufen, über dessen Parameter das aktuelle Command übergeben wird } self.RunEvent(CurrentCommand); end; (Synchronize) in deinem Command bzw. Job ein zweites Event haben, eins für die Benachrichtigung des Threads, ein zweites Event für die Anwendung. Gruß Pfoto |
Re: Werte übergeben aus einem 2. Thread
Hi Pfoto,
so ganz folgen kann ich dir noch nicht. Aber dein Grundgedanke ist doch folgender Ich sollte den ausgeführten Job (inklusive der Variablen die im Job ja gefüllt worden sind) in meinen Hauptthread (den der GUI) übergeben. Dann könnte ich ja prüfen welcher Job das war und anhand dessen ihn Casten, oder? So könnte ich dann ja auf die Variablen zurückgreifen (jeder Job hat ja andere Variablen meinst du ich könnte das dann folgendermaßen machen?
Delphi-Quellcode:
TFrmMain.GetJobFromThread(Sender:TObject; aJob:TBaseJob);
begin case aJob of TReadPresurreJob: begin Self.editPressure:=IntToStr((aJob as TReadPressureJob).Pressure); // Variable auslesen und in Edit schreiben end; ... end; end; // of TFrmMain.GetJobFromThread(Sender:TObject; aJob:TBaseJob); |
Re: Werte übergeben aus einem 2. Thread
richtig verstanden!
Die von dir aufgeführte Methode entspräche der zweiten Variante, die ich beschrieben hatte. Den von mir beschrieben Nachteil, dass du nun nur 1 Event für alle Commands/Jobs hast, hast du ja durch die case-Abfrage aufgehoben. Bei der ersteren Variante (der Thread ruft das eigene Event des Commands auf), könntest du jedem Command eine ganz individuelle Auswertung geben, ohne die Case-Struktur. Was nun bequemer / sinnvoller auf Dauer ist, ist abzuwarten. Wenn dein Code funktioniert, ist ja alles in Butter ;-) Gruß Pfoto |
Re: Werte übergeben aus einem 2. Thread
:lol: :lol:
Dann werde ich dass morgen an der Arbeit mal probieren, sage dir bescheid obs geklappt hat. Also schönen Abend noch, und danke euch beiden... |
Re: Werte übergeben aus einem 2. Thread
Hallo,
das mit dem Case hat natürlich nicht geklappt (da er ja zählbare (ordinale) Datentypen erwartet) Aber ich habe es mit if-Abfragen erstellt und siehe da... alles klappt wunderbar :-) Also Problem gelöst. Danke Community!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:25 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