Die Elementfunktion Run()

Fenster    

Run ist eine Elementfunktion der Klasse TApplication und sorgt kurz gesagt dafür, daß das Programm ausgeführt wird. Nun ruft Run noch weitere Elementfunktionen auf, sodaß wir durch Überschreiben der entsprechenden Elementfunktionen in unserer Klasse auf den Initialisierungsprozeß Einfluß nehmen können. Im folgenden sehen Sie, welche Funktionen und in welcher Reihenfolge Run diese aufruft:

 

Die Run Elementfunktion

 

InitApplication

Die virtuelle Elementfunktion InitApplication wird unter Win16 nur für die erste Instanz aufgerufen, da hPrevInstance gleich Null ist, solange keine Programminstanz existiert. Existiert bereits eine Instanz, ist hPrevInstance ungleich Null.

Erstellen wir ein Programm für Win32, wird InitApplication jedesmal aufgerufen, da jedes Win32-Programm seinen eigenen Adreßraum besitzt und sich keine Instanzdaten teilt. Daher wird unter Win32 jede Programminstanz als erste Instanz betrachtet, d.h. hPrevInstance hat immer den Wert 0!

InitInstance

Die virtuelle Elementfunktion InitInstance wird für jede Instanz aufgerufen, ganz egal ob es sich nun um ein Win16 oder Win32 Programm handelt. Die Funktion ruft die InitMainWindow-Elementfunktion auf, um das Rahmenfenster für die Anwendung festzulegen.

InitMainWindow

InitMainWindow ist ebenfalls virtuell. Sie ist sehr wichtig, da mit ihr das Hauptfensterobjekt erstellt wird. Die in der Anwendungsklasse TApplication definierte InitMainWindow-Funktion erstellt ein generisches Objekt des Typs TFrameWindow mit dem Namen der Anwendung als Titel. Um aber ein für uns sinnvolles Fenster erstellen zu können, müssen wir diese Funktion überschreiben und das von uns gewüschte Fensterobjekt erzeugen. Dieses speichern wir im Datenelement MainWindow unserer Anwendungsklasse:

 
void CApp::InitMainWindow()
{

SetMainWindow( new TFrameWindow(0, "Applikation", new CMyWindow(0, Titel));

}
 

Wenn InitMainWindow das Fensterobjekt nicht erstellen kann, wird eine Exception ausgelöst.

MessageLoop

MessageLoop ist die Botschaftenschleife der Anwendung die während der Lebenszeit der Anwendung läuft. Diese Elementfunktion ist auch virtuell, wird aber in den meisten Fällen nicht überschrieben.

IdleAction

Die OWL bietet einen sogenannten Idle-Mechanismus, durch den die Anwendung die Leerlaufzeit nutzt, um bestimmte Aktionen durchzuführen. Gibt es keine wartenden Botschaften, ruft MessageLoop die Elementfunktion IdleAction auf. Falls Sie die Idle-Verarbeitung nutzen wollen, müssen Sie IdleAction() überschreiben. Dabei sollten Sie darauf achten, daß nur kurz andauernde Aktionen ausgeführt werden. Im Bedarfsfall kann die Idle-Verarbeitung auch in mehrere Prozesse aufgeteilt werden. Eine einfache Aktion der Idle-Verarbeitung wäre beispielsweise die Aktualisierung der Anzeige von Datum und Uhrzeit.

Fenster    

Stand: 25.02.00 00:28:25
© 1998 by Hans Joachim Kiefer, hajokiefer@handshake.de