Navigation: Die Programmplanung >

Hintergrund-Verarbeitung und Ereignisse

Diese Seite drucken
Vorherige Seite Nächste Seite
Zurück zur Kapitelübersicht

Im Zusammenhang mit Dialogen wird üblicherweise nach dem Aufbau des Fensters ein Warte endlos-Befehl eingesetzt. Hierdurch stoppt das Skript erst einmal und wartet selbständig auf eine Aktion des Anwenders ("Schlaf-Modus"). Dies kostet übrigens kaum Rechenzeit, da keine ständig wiederholten Abfragen von Maus oder Tastatur notwendig sind.

Ein Beispiel für die beiden Varianten, auf ein Ereignis zu reagieren, sind die Skripte Uhr.CX4 und Uhr2.CX4. Während Uhr.CX4 in einer Schleife die Uhrzeit überprüft, arbeitet Uhr2.CX4 mit der Hintergrund-Technik.

Tritt ein Ereignis auf, etwa durch Anklicken des Fensters oder eines Elements, einen Tastendruck, Vergrößern oder Schließen des Fensters, wird automatisch ein entsprechendes Unterprogramm aufgerufen, sofern es existiert. Die möglichen Unterprogramme werden etwa bei der Erläuterung des ::Marke-Befehls aufgeführt.

 

Aufrufe

Eine andere Möglichkeit, einen automatischen Aufruf eines Unterprogramms zu bewirken, bietet der Befehle Aufruf. Hier kann durch Setzen der Option Hintergrund der Aufruf des Unterprogramms in einem bestimmten Intervall geschehen oder von einer bestimmten Bedingung abhängig gemacht werden, etwa dem Erreichen einer bestimmten Uhrzeit.

Das Unterprogramm wird dann im Hintergrund ausgeführt, wobei das ggf. noch laufende Skript unterbrochen wird (Interrupt). Nach Abschluss des Unterprogramms mit Zurück arbeitet das Skript dort weiter, wo es unterbrochen wurde. In der Praxis ist es aber meist der Fall, dass ein Skript mit solchen Ereignis-Unterprogrammen mit Warte endlos in Wartestellung geht und nur noch bei entsprechenden Ereignissen "geweckt" wird. Nach Beenden des Unterprogramms geht es dann wieder in die Wartestellung.

Auch einige Befehle können ein Unterprogramm aufrufen, etwa Suche Datei, wenn eine passende Datei gefunden wurde.

 

Wenn Sie zuerst die Aufruf- oder Datei suchen-Befehle in das Skript setzen und dann die Unterprogramme schreiben möchten, setzen Sie am Ende des Skripts jeweils neue Marken ein. In dem Eingabedialog werden die in den aufrufenden Befehlen vorgegebenen Markenbezeichnungen bereits in der Kombinationsliste angeboten, so dass Sie sie nur noch anwählen müssen. Danach muss noch ggf. der Zurück-Befehl eingesetzt werden, und das Unterprogramm ist fertig vorbereitet.

 

Unterprogramme müssen mit dem Befehl Zurück abgeschlossen werden, sofern nicht durch Beende Skript das Programmende ausgelöst wird.

 

Anklicken, um das Beispiel anzuzeigenBeispiel Hintergrundaufruf
***  Aufruf im Hintergrund-Demo
 Anzeigefenster  'Uhr' (ID='Uhr', B=32, H=10)
 Aufruf  'Uhrzeit' (Hintergrund, ständig, Intervall '1)
 Warte  endlos...
::  Uhrzeit
 Setze  in [Anzeige.Titel]:  '[cX.Zeit]'
Zurück  

**cX400794 ED18E9S1F4 2CMQkwCQkg QXVmcnVmIG ltIEhpbnRl cmdydW5kLU RlbW8NCjM5 CTAJCSBVaH IJR1VocglX MzIJSDEwDQ o0NAkwCQkg VWhyemVpdA lJCVMJVjEN CjMxCTAJCU UNCjE5CTAJ CSBVaHJ6ZW l0DQoyMgkw CQkgW2NYLl plaXRdCT1B bnplaWdlLl RpdGVsDQo0 NQkwCQkgDQ o==* 

 

 

Hinweis 1: Tritt ein neues Ereignis auf und das entsprechende Unterprogramm wird aufgerufen, während es oder ein anderes noch abgearbeitet wird, kann es zu unerwünschten Ergebnissen kommen. Unterprogramme wie Anzeige_Mausbewegung oder von Aufruf in sehr kurzen Intervallen aufgerufene Unterprogramme sollten daher möglichst kurz sein.

 

Hinweis 2: Sollten Warte-Befehle in Ereignis-Unterprogrammen verwendet werden, empfiehlt sich die Verwendung der Exklusiv-Option, damit es nicht durch wiederholte Aufrufe während der Verarbeitung zu Problemen kommen kann.

 

Hinweis 3: In der -Version stehen auch spezielle Zeitgeber (Timer) zur Verfügung, mit denen ebenfalls Hintergrundprozesse realisiert werden können.

 

 


cX-Webseite: http://www.clickexe.de