Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Prozedurschleife (https://www.delphipraxis.net/119156-prozedurschleife.html)

rich123 21. Aug 2008 08:54


Prozedurschleife
 
Hallo zusammen,

Wenn ich eine Prozedur durch einen ButtonClick aufrufe und dort drin eine Schleife ist, kann ich während der Schleife, irgendwie andere Prozeduren aufrufen?

Also z.b. Ermittle ich in einer Schleife Werte
und wenn ich eine andere Prozedur aufrufe(durch ButtonClick) sehe ich ein Diagramm davon. (wie es sich aufbaut)

Danke schonmal

Gruß

mkinzler 21. Aug 2008 09:00

Re: Prozedurschleife
 
Natürlich kannst du innehalb der Schleife weitere Prozeduren aufrufen

rich123 21. Aug 2008 09:03

Re: Prozedurschleife
 
Also bei mir ist dann die Form mehr oder weniger geblockt,

Da kann ich keinen anderen Button drücken

mkinzler 21. Aug 2008 09:09

Re: Prozedurschleife
 
Dafür müsstest du Threads verwenden

Luckie 21. Aug 2008 09:10

Re: Prozedurschleife
 
Zitat:

Zitat von rich123
Also bei mir ist dann die Form mehr oder weniger geblockt,

Da kann ich keinen anderen Button drücken

Wie auch, dein Programm ist ja auch mit dem Code in der Schleife beschäftigt und kann so natürlich keine Nachrichten aus der Nachrichtenschlange abholen. Entweder musst du deinem Programm sagen, dass es zwischendurch mal die Nachrichtenschlange abarbeiten soll mit Hier im Forum suchenApplication.ProcessMessages oder die verlegst die Schleife in einen eigenen Thread, so dass der Hauptthread auf weitere nachrichten reagieren kann.

rich123 21. Aug 2008 09:15

Re: Prozedurschleife
 
Wenn ich die Schleife auf einen eigenen Thread lege, arbeitet dann das Hauptprogramm und der Thread gleichzeitig oder unterbricht das Hauptprogramm den Thread wenn es etwas ausführen will?

Das Problem ist, dass was in der Schleife passiert soll in einer bestimmten Zeit ablaufen und das soll nicht stark abweichen

Danke schonmal,

Gruß

Luckie 21. Aug 2008 09:21

Re: Prozedurschleife
 
Zitat:

Zitat von rich123
oder unterbricht das Hauptprogramm den Thread wenn es etwas ausführen will?

Der Thread wird nur unterbrochen, wenn es synchronisiert werden muss, weil er auf etwas wartet oder wenn er Steuerelemente des Fensters aktualisieren soll/muss.

Zitat:

Das Problem ist, dass was in der Schleife passiert soll in einer bestimmten Zeit passieren und das soll nicht stark abweichen
Windows ist kein Echtzeit Betriebssystem. Die Kommunikation von Windows (Programmen) basiert auf Nachrichten und Ereignissen. Niemand kann dir garantieren, dass eine Nachricht genau zu dem gewünschten Zeitpunkt ankommt bzw. genau in den gewünschten Zeitintervallen verschickt wird. Ein ausgelastetes System oder ein Prozess mit einer höheren Priorität kann schon alles zunichte machen. Deswegen fragt man unter Windows auch nicht einen bestimmten Zustand immer wieder ab, sondern läßt sich, wenn möglich, benachrichtigen, wenn dieser Zustand eingetreten ist.

rich123 21. Aug 2008 09:25

Re: Prozedurschleife
 
Ja, dass es kein Echtzeitbetriebssystem ist, ist schon ein Problem, aber die Verzögerung kann ich verkraften.

Ich werd mir mal in der Delphi Hilfe anschauen wie ich einen Thread erstelle.

Danke vielmals

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz