Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Procedure bis zum Ende weiterführen (https://www.delphipraxis.net/204392-procedure-bis-zum-ende-weiterfuehren.html)

Royal Ranger 26. Mai 2020 09:49

Procedure bis zum Ende weiterführen
 
Hallo,
ich brauch mal von jemandem einen Tipp wie ich ein Problem lösen kann...Ich hab ein Variable "index : Byte", die alle 2 Sekunden von einem
Zufallszahlengenerator im bereich 1-5 neu deklariert wird nun will ich dass wenn index den Wert 1 an nimmt, der eine Ablauf beginnt, bei index:=2 ein anderer und bei index :=3 wieder ein anderer und so weiter. ich habe das bisher so gelöst:

Delphi-Quellcode:
case index of

1 :
begin
 ....    ;
end;

2 :
begin
 ...;
end;
3 :
begin
 ... ;
end;
4:
begin
 ....   ;
end;
5 :
begin
 ....;
end;
end;
Mein Problem ist jetzt dass sobald index einen neuen Wert annimmt, der alte Ablauf unterbrochen wird und eben der neue beginnt...Wie könnte ich es hinkriegen, dass der Ablauf zuende geführt wird auch wenn index schon einen neuen Wert angenommen hat?

Vielen Dank

Klaus01 26. Mai 2020 09:53

AW: Procedure bis zum Ende weiterführen
 
.. wer ändert denn den Index?

Die case Abfrage vielleicht in CriticalSections einpacken.

Grüße
Klaus

Royal Ranger 26. Mai 2020 09:58

AW: Procedure bis zum Ende weiterführen
 
Hey Klaus,
der index wird jedes mal bei der Prozedur OnTimer durch den Zufallsgenerator neu deklariert

Uwe Raabe 26. Mai 2020 10:00

AW: Procedure bis zum Ende weiterführen
 
Kommt zufällig irgendwo in deinem case-Konstrukt ein Aufruf von
Delphi-Quellcode:
Application.ProcessMessages
vor? Eventuell auch indirekt?

Klaus01 26. Mai 2020 10:01

AW: Procedure bis zum Ende weiterführen
 
.. dann kannst Du auch den Timer deaktivvieren wenn in die case Abfrage eingetreten wird
und bevor sie verlassen wird, den Timer wieder aktivieren.

Grüße
Klaus

Royal Ranger 26. Mai 2020 10:03

AW: Procedure bis zum Ende weiterführen
 
Hey,
nein das kommt nicht vor. Ich bin auch erst Anfänger und habe nur minimal Kenntnisse von Pascal bzw. der Delphi IDE

Royal Ranger 26. Mai 2020 10:04

AW: Procedure bis zum Ende weiterführen
 
Ok vielen Dank!

Uwe Raabe 26. Mai 2020 10:07

AW: Procedure bis zum Ende weiterführen
 
Zitat:

Zitat von Klaus01 (Beitrag 1465315)
.. dann kannst Du auch den Timer deaktivvieren wenn in die case Abfrage eingetreten wird
und bevor sie verlassen wird, den Timer wieder aktivieren.

Solange niemand in der case-Anweisung die Message-Queue abarbeitet, sollte das keine Rolle spielen. Wenn der Programmablauf wieder in der case-Anweisung landet, bevor sie verlassen wurde, dann liegt noch irgendwo ein Fehler im Ablauf vor. Den kann man aber nur im Source-Code sehen, der uns bisher nicht vorliegt.


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