Detaillierte Erläuterung der Tapplication-Klasse in Delphi TApplication ist der Typ der Delphi-Anwendung. Diese Klasse erbt von TComponent und wird in der Unit Forms deklariert. Und es gibt eine öffentliche Objektanwendung in Forms. Seine Methoden und Eigenschaften umfassen etablierte Grundoperationen und Eigenschaften wie das Erstellen, Ausführen und Zerstören von Anwendungen im Windows-Betriebssystem und vereinfachen so die Schnittstelle zwischen dem Benutzer und der Windows-Umgebung beim Schreiben von Windows-Anwendungen in Delphi. TApplication kapselt die folgenden vier Funktionen: 1. Windows-Nachrichtenverarbeitung. 2. Menübeschleunigung und Tastaturverarbeitung. 3. Ausnahmebehandlung. 4. Kontextbezogene Online-Hilfe. Im Folgenden werden Ihnen die häufig verwendeten Eigenschaften, Methoden und Ereignisse in TApplication vorgestellt. 1. Attribut 1. 1 Attribut „Aktiv“ Das Attribut „Aktiv“ gibt an, ob die Anwendung aktiv ist und den Fokus hat. Die Definition lautet wie folgt: PRperty Active: Boolean; Active ist eine schreibgeschützte Eigenschaft. Active ist True, wenn die Anwendung aktiv ist, andernfalls False. Der Konstruktor von TApplica-tion setzt Active auf True. Wenn ein Fenster oder eine Anwendung den Fokus hat, ist die Anwendung aktiv. Die aktuelle Anwendung ist inaktiv, wenn das Fenster einer anderen Anwendung aktiv wird. Wenn die Anwendung geschlossen wird, setzt der Destruktor von TApplication Active auf False. In der Anwendung können Sie mithilfe eines Timers (TTimer) den Wert des Attributs Active überprüfen, um festzustellen, ob die aktuelle Anwendung aktiv ist, damit eine entsprechende Verarbeitung durchgeführt werden kann. Bestimmte Operationen können auch im Ereignis OnActive und im Ereignis OnDeactive definiert werden. 1.2 Eigenschaft DialogHandle Die Eigenschaft DialogHandle bietet Delphi-Anwendungen einen Mechanismus zur Verwendung von Nicht-Delphi-Dialogfeldern. Die Definition lautet wie folgt: Eigenschaft DialogHandle: HWnd; Wenn Sie die API-Funktion CreateDialog zum Erstellen eines nicht modalen Dialogfelds verwenden, müssen Sie DialogHandle verwenden und die Nachrichten in der Anwendungsnachrichtenschleife anzeigen, um entsprechende Vorgänge auszuführen. Wenn beispielsweise ein modusloses Dialogfeld eine Aktivierungsnachricht (WM_NCACTIVATE) empfängt, kann sein Handle dem DialogHandle zugewiesen werden, und wenn das Dialogfeld eine Deaktivierungsnachricht empfängt, wird das DialogHandle auf 0 gesetzt. 1.3 Attribut ExeName Das Attribut ExeName enthält den Namen der ausführbaren Anwendungsdatei und Pfadinformationen. Es ist wie folgt definiert: Eigenschaft ExeName: string; ExeName ist eine schreibgeschützte Eigenschaft. Verwenden Sie ExeName, um den Dateinamen der ausführbaren Datei der Anwendung abzurufen. Dies ist ein sehr nützliches Attribut. Wenn Sie beispielsweise die Anwendung f:/media/myapp.exe auf der CD ausführen, müssen Sie möglicherweise auf Dateien im Verzeichnis f:/media/data/ zugreifen oder den Laufwerksbuchstaben ermitteln, in dem sich die Anwendung befindet. Zu diesem Zeitpunkt können Sie die von Delphi bereitgestellten Funktionen ExtractFilePath und ExtractFileName verwenden, um das Attribut ExeName zu analysieren und die erforderlichen Informationen zu erhalten. 1.4 Attribut Handle Das Attribut Handle ermöglicht den Zugriff auf das Handle des Hauptfensters der Anwendung. Die Definition lautet wie folgt: Eigenschaft Handle: HWND; Die Handle-Eigenschaft muss verwendet werden, wenn eine Windows-API-Funktion aufgerufen wird, die ein übergeordnetes Fensterhandle erfordert. Beispielsweise benötigt eine Dynamic Link Library (DLL) in einer Anwendung möglicherweise ein übergeordnetes Fensterhandle, damit sie angezeigt und in den Vordergrund gerückt werden kann. Verwenden Sie Application.Handle, um mehrere Fenster der Anwendung zu bilden, sodass diese Fenster in der Anwendung minimiert, wiederhergestellt, aktiviert oder deaktiviert werden können. Hinweis: Beim Schreiben einer Dynamic Link Library, die VCL-Formulare verwendet, sollte das Handle des Hauptfensters im Hauptprogramm der Application.Handle-Eigenschaft der Dynamic Link Library zugewiesen werden. Dadurch wird die Form der Dynamic Link Library zu einem Teil der Hauptanwendung. Es ist wichtig darauf hinzuweisen, dass Sie Application.Handle in einer EXE-Anwendung niemals einen Wert zuweisen sollten. 1.5 Attribut HelpFile Das Attribut HelpFile gibt den Dateinamen an, den die Anwendung zum Anzeigen von Hilfeinhalten verwendet. Die Definition lautet wie folgt: Eigenschaft HelpFile: string; Die Verwendung von HelpFile dient dazu, dass die Anwendung über eine Hilfedatei verfügt, die das Standard-Windows-Hilfesystem verwendet. Windows zeigt die durch die HelpFile-Eigenschaft angegebene Hilfedatei an. Damit Ihre Anwendung dies erreichen kann, müssen Sie der Eigenschaft „HelpFile“ zur Laufzeit den Wert eines Dateinamens zuweisen oder zur Entwurfszeit auf der Seite „Anwendung“ des Dialogfelds „Projekt|Optionen“ eine Hilfedatei angeben. Standardmäßig ist HelpFile eine leere Zeichenfolge ('') und die Hilfemethoden der Anwendung ignorieren alle Versuche, Hilfe anzuzeigen. Wenn HelpFile Inhalte enthält, ruft die Hilfethema-Methode das Windows-Hilfesystem auf, um basierend auf dem Dateinamen Online-Hilfe bereitzustellen. Hinweis: Wenn die Hilfedatei des aktiven Fensters angegeben ist, wird diese Datei vorrangig vor der Hilfedatei der Anwendung angezeigt. 1.6 Attributhinweis Attributhinweis gibt die Textzeichenfolge an, die im Feld „Hilfehinweis“ angezeigt wird. Die Definition lautet wie folgt: property Hint: string; Die TApplication.Hint-Eigenschaft ist der Hint-Wert des Steuerelements oder Menüelements, durch das sich die Maus bewegt. Diesem Attribut kann auch ein Zeichenfolgenwert zugewiesen werden, der dem Benutzer Aktionen, Fehler oder andere Informationen bereitstellt. Daher kann die Verwendung der Hint-Eigenschaft auch: Eingabeaufforderungsinformationen vom Steuerelement in einen anderen Anzeigebereich übertragen, beispielsweise die Eingabeaufforderung in der Statusleiste über den OnHint-Ereignishandler anzeigen. Zu diesem Zeitpunkt wird das Hint-Attribut gelesen. Beschreiben Sie kurz den Status der Anwendung, wenn sie eine Aktion ausführt. Zu diesem Zeitpunkt ist das Hint-Attribut festgelegt. Die Hilfeaufforderung wird angezeigt, wenn das OnHint-Ereignis auftritt. Selbst wenn der Hint-Eigenschaft von TApplication beispielsweise der Titel der Statusleiste zugewiesen ist, zeigt der Titel des Statusleisten-Steuerelements den aktuellen Zeichenfolgenwert der Hint-Eigenschaft an, er sollte daher dem OnHint-Ereignis zugeordnet werden. Die Hinweiszeichenfolge besteht aus zwei Teilen: einem kurzen Hinweis und einem langen Hinweis. Kurze Eingabeaufforderungen werden für prägnante Popup-Eingabeaufforderungen verwendet; lange Eingabeaufforderungen und kurze Eingabeaufforderungen werden durch einen vertikalen Balken „|“ getrennt und dienen zur Anzeige detaillierterer Eingabeaufforderungsinformationen in der Statusleiste. Sie können die in den Unit-Steuerelementen bereitgestellten Zeichenfolgenfunktionen GetShortHint und GetLongHint verwenden, um kurze und lange Hinweise aus dem Hint-Attribut abzurufen. Hinweis: Wenn eine Anwendung dem Benutzer durch Festlegen der Hint-Eigenschaft Informationen über das Auftreten eines Ereignisses bereitstellt, ist zu beachten, dass die Hint-Zeichenfolge standardmäßig auf den Wert der Hint-Eigenschaft zurückgesetzt wird, wenn die Maus über ein Steuerelement bewegt wird der Kontrolle. 1.7 Eigenschaft HintHidePause Die Eigenschaft HintHidePause gibt das Zeitintervall an, bevor die Hilfeaufforderung ausgeblendet wird, bevor die Maus vom Steuerelement oder Menüelement wegbewegt wird. Sie ist wie folgt definiert: Eigenschaft HintHidePause: Integer; Verwenden Sie HintHidePause, um die Wartezeit in Millisekunden anzugeben. Diese Eigenschaft wird im Konstruktor von TApplication auf 2500 Millisekunden (2,5 Sekunden) festgelegt. Der Hilfetipp für ein Steuerelement oder Menüelement wird in der Hint-Eigenschaft angegeben. Hinweis: Standardmäßig sollte der Wert von HintHidePause auf das 3- bis 5-fache des Werts des HintPause-Attributs voreingestellt sein. 1.8 Eigenschaft MainForm Die Eigenschaft MainForm identifiziert eindeutig das Hauptformular der Anwendung. Es ist wie folgt definiert: Eigenschaft MainForm: TForm; Das durch die MainForm-Eigenschaft angegebene Formular ist nicht unbedingt dasselbe wie das Hauptfenster der Anwendung. Der Wert der MainForm-Eigenschaft muss das erste Formular aller von der CreateForm-Methode erstellten Formulare sein, das Formular darf jedoch nicht das Hauptfenster der Anwendung sein. Beim Erstellen eines neuen Projekts wird der MainForm-Attributwert automatisch auf Form1 gesetzt. Zur Entwurfszeit können Sie über die Seite „Formulare“ im Dialogfeld „Projekt|Optionen“ eines von mehreren Formularen als MainForm angeben. Die MainForm-Eigenschaft kann zur Laufzeit nicht geändert werden, da die Eigenschaft schreibgeschützt ist. Das Hauptformular ist das erste vom Anwendungsthema erstellte Formular. Die Anwendung wird beendet, wenn das Hauptformular geschlossen wird. In einer Anwendung können Sie die Methode Application.MainForm.Close aufrufen, um die Anwendung zu beenden. Sie können die Werte von Eigenschaften wie Application.MainForm.Top und Application.MainForm.Left abrufen, um die Position und Größe der aktuellen Anwendung zu bestimmen aktives Fenster. 1.9 Eigenschaft ShowMainForm Die Eigenschaft ShowMainForm bestimmt, ob das Hauptformular beim Start der Anwendung angezeigt werden soll. Es ist wie folgt definiert: Eigenschaft ShowMainForm: Boolean; Die Anwendung verwendet die ShowMainForm-Eigenschaft, um zu steuern, ob und wann ihr Hauptformular angezeigt wird. Der Konstruktor von TApplication setzt ShowMainForm auf True. Standardmäßig wird das Hauptformular angezeigt, wie in der MainForm-Eigenschaft angegeben. Wenn Sie das Hauptformular beim Start der Anwendung ausblenden müssen, sollten Sie ShowMainForm auf False setzen, bevor Sie Application.Run in der Hauptprojektdatei aufrufen, und sicherstellen, dass der Visible-Eigenschaftswert des Hauptformulars False ist. Dies ist in vielen Implementierungen von OLE-Automatisierungsservern nützlich, beispielsweise beim Ausblenden der Hauptform des Serverprogramms beim Starten des Automatisierungsdienstes. Wenn Sie außerdem beim Start der Anwendung ein Flash-Bild (Flash) anzeigen und einige Vorbereitungen für die Anwendungsumgebung treffen müssen und auch die Anzeige des Hauptformulars deaktivieren müssen, kann dies auch durch die Verwendung des ShowMainForm-Attributs erreicht werden. Wenn Delphi beispielsweise gestartet wird, ist die Anzeige des Hauptformulars deaktiviert. 1.10 Attribut Terminated Das Attribut Terminated meldet, ob das Programm die Windows-Nachricht WM_QUIT erhalten hat, die das Programm beendet. Die Definition lautet wie folgt: Eigenschaft Terminated: Boolean; Terminated ist eine schreibgeschützte Eigenschaft. Diese Eigenschaft wird hauptsächlich beim Aufrufen der ProcessMessages-Methode verwendet, damit die Anwendung nicht aufhören muss, Windows-Nachrichten zu verarbeiten. Wenn die ProcessMessages-Methode die Nachricht WM_QUIT empfängt, wird Terminated auf True gesetzt. Delphi-Anwendungen erhalten immer die Meldung WM_QUIT, weil das Hauptformular oder die Hauptanwendung geschlossen wird oder weil die Terminate-Methode aufgerufen wird. Wenn eine Anwendung einen sehr intensiven Vorgang ausführt, der viele Systemressourcen beansprucht, sollte die Methode „Application-on.ProcessMessages“ regelmäßig aufgerufen und die Eigenschaft „Application.Terminated“ überprüft werden, um festzustellen, ob der Vorgang beendet werden muss, um die Anwendung zu beenden . 1.11 Eigenschaft UpdateFormatSettings Die Eigenschaft UpdateFormatSettings gibt an, ob die Anwendung die Formateinstellungen automatisch aktualisiert, wenn der Benutzer die Systemkonfiguration ändert. Definiert wie folgt: Eigenschaft UpdateFormatSettings: Boolean; Mithilfe der UpdateFormatSettings-Eigenschaft kann die Anwendung die automatische Aktualisierung von Formateinstellungen steuern. Der Konstruktor von TApplication setzt diese Eigenschaft auf True. Die UpdateFormatSett-ings-Eigenschaft wird überprüft, wenn die Anwendung die Nachricht WM_WININICHANGE empfängt. Es wird empfohlen, die Standardformateinstellungen zu verwenden, bei denen es sich um die lokalen Windows-Einstellungen handelt. Sie können UpdateFormatSettings auf False setzen, um zu vermeiden, dass Formateinstellungen während der Ausführung der Delphi-Anwendung geändert werden. 1.12 Attribut „UpdateMetricSettings“ Das Attribut „UpdateMetricSettings“ gibt an, ob zugehörige Einstellungen wie die Schriftart des Eingabeaufforderungsfensters und der Symboltitel aktualisiert werden sollen. Die Definition lautet wie folgt: Eigenschaft UpdateMetricSettings: Boolean; Die Eigenschaft UpdateFormatSettings gibt an, ob sich Änderungen an Einstellungen wie der Schriftart des Eingabeaufforderungsfensters und dem Symboltitel im System in Änderungen an zugehörigen Einstellungen in der Anwendung widerspiegeln. Der Konstruktor von TApplication legt den Anfangswert von UpdateMetricSettings auf True fest. 2. Methode 2.1 Methode BringToFront Die Methode BringToFront setzt das zuletzt aktive Fenster in der Anwendung an den Anfang aller Fenster auf dem Desktop. Seine Definition lautet wie folgt: procedure BringToFront; Verwenden Sie die BringToFront-Methode, um das zuletzt aktive Fenster zu finden, das zum Hauptformular gehört, und es in den Vordergrund zu bringen. Die BringToFront-Methode kann auch testen, ob ein Fenster sichtbar (Visible) und gültig (Enabled) ist, bevor es zum vordersten Fenster wird. Wenn eine Anwendung beispielsweise E-Mails empfängt, muss möglicherweise ein spezieller Handler aktiviert und in den Vordergrund des Windows-Desktops gebracht werden. Zu diesem Zeitpunkt können Sie die Methode Application.BringToFront aufrufen, um dies zu erreichen. 2.2 Methode CreateForm Die Methode CreateForm wird zum Erstellen eines neuen Formulars (Formular) verwendet. Sie ist wie folgt definiert: procedure CreateForm(FormClass: TFormClass; var Reference); Delphi-Anwendungen rufen immer die CreateForm-Methode auf. Daher ist es für Programmierer selten erforderlich, die CreateForm-Methode direkt aufzurufen. Ein typisches Delphi-Projekt enthält einen oder mehrere Aufrufe der CreateForm-Methode im Hauptcodeteil des Projekts und steuert automatisch die Erstellung des Formulars, wenn der Formular-Designer verwendet wird. Sie können die CreateForm-Methode auch zur Laufzeit aufrufen, um ein Formular dynamisch zu erstellen. Die CreateForm-Methode erstellt ein neues angegebenes Formular basierend auf dem FormClass-Parameter und weist das Formular dem variablen Parameter Reference zu. Eigentümer des neu erstellten Formulars ist das Objekt Application. Die Anwendung verwendet standardmäßig das erste Formular, das durch den Aufruf von CreateForm als Hauptformular des Projekts erstellt wurde. 2.3 Methode HandleException Die Methode HandleException stellt ein Standardhandle für Anwendungsausnahmen bereit. Sie ist wie folgt definiert: procedure HandleException(Sender: TObject); Die Methode HandleException ist für Autoren bestimmter Komponenten nützlich, da sie ein Ereignis generieren kann, das nicht auf Windows-Meldungen reagieren muss. Sie können den OnException-Ereignishandler in Ihrer Anwendung verwenden, um andere Ausnahmevorgänge in benutzerdefiniertem Code zu steuern. Wenn die Ausnahme im Anwendungscode alle Try-Blöcke überspringt, ruft die Anwendung automatisch die HandleE-xception-Methode auf und zeigt ein Dialogfeld an, das darauf hinweist, dass ein Fehler aufgetreten ist. Sofern das Ausnahmeobjekt nicht EAbort ist, ruft Han-dleException das OnException-Handle auf (sofern vorhanden). Andernfalls wird ShowException aufgerufen, um ein Dialogfeld anzuzeigen, das zu einem Fehler führt. 2.4 Methode UnhookMainWindow Die UnhookMainWindow-Methode wird verwendet, um das Programm freizugeben, das von der HookMainWindow-Methode am Hauptformular hängengeblieben ist. Die Definition lautet wie folgt: type TWindowHook = function(var Message: TMessage): Boolean of object; UnhookMainWindow(Hook: TWindowHook); Verwenden Sie UnhookMainWindow, um das Hook-Fenster freizugeben. Geben Sie im Parameter Hook die Vorgehensweise des Dialogfensters an. Der TwindowHook-Typ ist der Parameter zum Aufrufen der HookMainWindow-Methode. Dieser Parameter ist der Methodenzeiger zum Aufrufen des Dialogprogramms in einem Nicht-Delphi-Dialogfeld. Dialogprogramme ähneln Fensterprogrammen darin, dass sie Nachrichten für Dialogfelder verarbeiten, die Syntax ist jedoch unterschiedlich. 3. Ereignis 3.1 Ereignis OnActivate Das OnActivate-Ereignis tritt ein, wenn die Anwendung aktiv wird. Die Definition lautet wie folgt: type TNotifyEvent = procedure (Sender: TObject) of object; property OnActive: TNotifyEvent; Verwenden Sie das OnActive-Ereignis, um einen Ereignishandler zu schreiben, um eine spezielle Verarbeitung anzugeben, wenn die Anwendung aktiv wird. Eine Windows-Anwendung wird aktiv, wenn sie zum ersten Mal ausgeführt wird oder wenn ihr Fokus von einer anderen Windows-Anwendung zurück auf die aktuelle Anwendung übertragen wird. 3.2 Ereignis OnDeactivate Das Ereignis OnDeactivate tritt ein, wenn die Anwendung inaktiv wird. Es ist wie folgt definiert: type TNotifyEvent = procedure (Sender: TObject) of object; property OnDeactivate: TNotifyEvent; Das OnDeactive-Ereignis kann unmittelbar vor der Inaktivität der Anwendung ausgelöst werden, wodurch die im Ereignishandler angegebene spezielle Verarbeitung abgeschlossen wird. Das OnDeactive-Ereignis der aktuellen Anwendung tritt ein, wenn der Benutzer von der aktuellen Anwendung zu einer anderen Anwendung wechselt. 3.3 Ereignis OnException Das Ereignis OnException tritt auf, wenn in der Anwendung eine handlelose Ausnahme auftritt. Es ist wie folgt definiert: type TExceptionEvent = procedure (Sender: TObject; E: Exception) of object; OnException: TExceptionEvent; Sie können das OnException-Ereignis verwenden, um die Standardaktion zu ändern, wenn in der Anwendung eine Ausnahme auftritt. In der Methode TApplication.HandleException wird automatisch der OnException-Ereignishandler aufgerufen. Das OnException-Ereignis wird nur zur Behandlung von Ausnahmen verwendet, die während der Nachrichtenverarbeitung auftreten. Ausnahmen, die vor oder nach der Ausführung von Application.Run auftreten, führen nicht zum Auftreten des OnException-Ereignisses. Wenn eine Ausnahme im Try-Block des Anwendungscodes ignoriert wird, ruft die Anwendung automatisch die HandleException-Methode auf. Sofern es sich bei dem Ausnahmeobjekt nicht um einen EAbort handelt, ruft HandleException das OnException-Handle auf (sofern vorhanden). Andernfalls wird ShowException aufgerufen, um ein Dialogfeld anzuzeigen, das zu einem Fehler führt. Der Typ TExceptionEvent ist der Typ des OnException-Ereignisses, das auf eine Methode zur Behandlung von Ausnahmen in der Anwendung verweist. Der Parameter Sender ist das Objekt, das die Ausnahme auslöst, und Parameter E ist das Ausnahmeobjekt. 3.4 Ereignis OnHelp Das Ereignis OnHelp tritt auf, wenn die Anwendung eine Hilfeanfrage empfängt. Die Definition lautet wie folgt: type THelpEvent = function (Command: Word; Data: Longint; var CallHelp: Boolean): Boolean of object; property OnHelp: THelpEvent; Verwenden Sie OnHelp, um einen Event-Handler zu schreiben, um eine spezielle Verarbeitung abzuschließen, wenn eine Anfrage vorliegt um Hilfe. Die HelpContext-Methode und die HelpJump-Methode lösen automatisch das OnHelp-Ereignis aus. Setzen Sie CallHelp auf True, damit VCL WinHelp aufrufen kann, nachdem das Ereignis eintritt. Setzen Sie CallHelp auf False, um zu verhindern, dass VCL WinHelp aufruft. Alle hilfebezogenen Methoden in Delphi-Anwendungen durchlaufen das OnHelp-Ereignis. WinHelp wird nur aufgerufen, wenn der CallHelp-Parameter im OnHelp-Ereignis „True“ zurückgibt oder wenn das OnHelp-Ereignis keinem gültigen Handle zugewiesen ist. 3.5 Ereignis OnHint Wenn sich der Mauszeiger über ein Steuerelement oder Menüelement bewegt und das Steuerelement oder Menüelement eine Hilfeaufforderung anzeigen kann, tritt das Ereignis OnHint auf. Die Definition lautet wie folgt: type TNotifyEvent = procedure (Sender: TObject) of object; property OnHint: TNotifyEvent; Wenn der Benutzer den Mauszeiger auf ein Steuerelement setzt und der Wert der Hint-Eigenschaft des Steuerelements keine leere Zeichenfolge ('') ist, tritt das OnHint-Ereignis ein. Das OnHint-Ereignis wird normalerweise verwendet, um den Wert der Hint-Eigenschaft eines Steuerelements oder Menüelements als Titel eines Panel-Steuerelements (z. B. TStatusBar) anzuzeigen, sodass das Panel als Statusleiste verwendet wird. Wenn das OnHint-Ereignis auftritt, wird das Hint-Attribut normalerweise als Hilfehinweis und längerer Hinweis angegeben, der an anderer Stelle angezeigt wird. 3.6 Ereignis OnIdle Das Ereignis OnIdle tritt ein, wenn die Anwendung in den Leerlauf wechselt. Die Definition lautet wie folgt: type TIdleEvent = procedure (Sender: TObject; var Done: Boolean) of object; property OnIdle: TIdleEvent Verwenden Sie OnIdel, um einen Ereignishandler zu schreiben, um den angegebenen Vorgang abzuschließen, wenn die Anwendung inaktiv ist. Eine Anwendung ist inaktiv, wenn sie keinen Code ausführt. Beispielsweise ist eine Anwendung inaktiv, während sie auf Benutzereingaben wartet. Der Typ TIdelEvent ist der Typ des OnIdel-Ereignisses, das auf eine Methode verweist, die ausgeführt wird, wenn die Anwendung inaktiv ist. Das Objekt TIdelEvent verfügt über eine Variable „Done“, deren Standardwert „True“ ist. Wenn „Done“ den Wert „True“ hat, wird die Windows-API-Funktion WaitMessage aufgerufen, wenn OnIdel zurückkehrt. WaitMessage bewirkt, dass andere Anwendungen den Kontrollfokus erlangen, bis eine neue Nachricht in der Nachrichtenwarteschlange der Anwendung angezeigt wird. Wenn der Parameter „Done“ den Wert „False“ hat und die Anwendung nicht ausgelastet ist, lässt die Anwendung nicht zu, dass andere Anwendungen den Steuerungsfokus erlangen. Wenn die Anwendung inaktiv wird, tritt das OnIdel-Ereignis nur einmal auf und das nächste OnIdel-Ereignis tritt möglicherweise erst dann ein, wenn der Parameter Done auf True gesetzt ist. Durch die Einstellung von „Done“ auf „False“ durch die Anwendung werden unregelmäßige CPU-Zeitzählungen vermieden, die sich auf die Gesamtsystemleistung auswirken können. 3.7 Das Ereignis „OnMessage“ wird generiert, wenn die Anwendung eine WINDOWS-Nachricht empfängt. Es ist wie folgt definiert: type TMessageEvent = procedure (var Msg: TMsg; var Handled: Boolean) of object; property OnMessage: TmessageEvent wird zum Empfangen von WINDOWS-Nachrichten verwendet kann alle vom Programm an WINDOWS gesendeten Nachrichten empfangen. Dieses Ereignis wird generiert, wenn die Anwendung eine Nachricht empfängt. Die Variable Msg ist vom WINDOWS-Nachrichtentyp.