Minimiertes Fenster wieder darstellen
Minimiertes Fenster wieder darstellen
Ich habe ein Fenster erstellt mit den Standardeigenschaften (minimieren,maximieren,schließen). In diesem Fenster laufen längere Berechnungen (ca. 60 min) und eine Zeitanzeige. Wenn ich dieses Fenster minimiere erscheint es unten in der Taskbar. Es lässt sich aber nicht wieder herstellen während die Berechnungen laufen (CPU Last = 100 %). Nach Ende der Berechnungen ist eine Wiederherstellung problemlos möglich - mit allen Inhalten.
Hat jemand eine Idee ?
Hat jemand eine Idee ?
no name, no woman, no job, no money, no worries - just tired
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
innerhalb der berechnungsschleife ein WindowEvent() einfügen.
wenn die berechnung in geschachtelten schleifen stattfindet,
vielleicht nicht in der innersten schleife.
wenn die berechnung in geschachtelten schleifen stattfindet,
vielleicht nicht in der innersten schleife.
Code: Alles auswählen
For Zeile = 0 to 999
For Spalte = 0 to 999
Berechnung(Zeile,Spalte)
Next
WindowEvent()
Next
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
WindowEvent() funktioniert. Man muss sich aber bei geschachtelten Schleifen sehr genau überlegen wo man diesen Befehl aufruft. Den Unterschied in den Auswertezeiten werde ich noch einmal testen. Aber generell ist dieser Weg OK.
Danke Kaeru
Danke Kaeru
no name, no woman, no job, no money, no worries - just tired
-
- Beiträge: 476
- Registriert: 23.03.2005 23:19
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Immer diese Panikmache mit den Threads.
Folgende Regeln beachten:
- Mehrfaches starten verhindern
- String nicht in mehreren Thread verarbeiten. (Möglich bei PB4 mit Option Threadsave)
Folgende Regeln beachten:
- Mehrfaches starten verhindern
- String nicht in mehreren Thread verarbeiten. (Möglich bei PB4 mit Option Threadsave)
Code: Alles auswählen
Global ThreadActiv.l
Procedure MyThread(ID)
For i = 0 To 10 ;
Delay(1000)
Next i
EndProcedure
If ThreadActiv = #False
hThread = CreateThread(@MyThread(), 0)
If hThread
ThreadActiv = #True
EndIf
EndIf
Repeat
If IsThread(hThread)
Debug "Thread läuft"
Else
Debug "Thread fertig"
ThreadActiv = #False
EndIf
Delay(1000)
Until ThreadActiv = #False
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive