OWL Diverse Themen | 
Dazu wird zunächst der Timer gestartet. Dies kann von jeder Memberfunktion von TWindow oder einer abgeleiteten Klasse (z. B. auch TDialog) durch Setzen des Timers erfolgen.
SetTimer(1, 1000);Der erste Parameter ist die Timer-ID, der zweite ist das Ereignisintervall in msek. Im Beispiel wird also jede Sekunde ein WM_TIMER-Ereignis bei der Fensterfunktion eintreffen, bis der Timer gestoppt wird.
Damit ein Timer-Ereignis behandelt wird, muß eine EvTimer-Funktion eingerichtet werden.
class tInitDialog : public TDialog {
public:
	tInitDialog(TWindow *parent, TResId resID);
	void SetupWindow();
protected:
	void EvTimer(uint);
	DECLARE_RESPONSE_TABLE(tInitDialog);
private:
	int Sekunden;
};
DEFINE_RESPONSE_TABLE1(tInitDialog, TDialog)
EV_WM_TIMER,
END_RESPONSE_TABLE;
Die EvTimer-Funktion erhält als Parameter die Timer-ID. Sie (oder eine
andere Memberfunktion der Fensterklasse) kann den Timer
durch Aufruf von KillTimer wieder abschalten.
void tInitDialog::EvTimer(uint TimerID)
{
	Sekunden--;
	if (Sekunden<=0) {
		KillTimer(TimerID);
	}
}
Leider definiert Windows den Parametertyp für die Timer-ID als uint, 
OS/2 dagegen als UINT. Ein kleiner #define am Anfang des Listings sorgt 
für Portabilität.
#ifdef __OS2__ #define uint UINT #endif
GetApplication()->LoadString(ResID, buffer, len);
| OS/2 | Windows | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
  
  | 
  
  | 
| Homepage - OWL-Index | 22.9.2001 (C) Copyright 1999, 2001 Arnold Willemer |