Explication détaillée de la classe Tapplication dans Delphi TApplication est le type d'application Delphi. Cette classe hérite de TComponent et est déclarée dans l'unité Forms. Et il existe une application d'objet public dans Forms. Ses méthodes et propriétés incluent des opérations et propriétés de base établies telles que la création, l'exécution et la destruction d'applications dans le système d'exploitation Windows, simplifiant ainsi l'interface entre l'utilisateur et l'environnement Windows lors de l'écriture d'applications Windows dans Delphi. TApplication encapsule les quatre fonctions suivantes : 1. Traitement des messages Windows. 2. Accélération des menus et traitement du clavier. 3. Gestion des exceptions. 4. Aide contextuelle en ligne. Ce qui suit vous présentera les propriétés, méthodes et événements couramment utilisés dans TApplication. 1. Attribut 1. 1 attribut Actif L'attribut Actif indique si l'application est active et a le focus. La définition est la suivante : PRperty Active : Boolean Active est une propriété en lecture seule. Active vaut True lorsque l'application est active, False sinon. Le constructeur de TApplica-tion définit Active sur True. Si une fenêtre ou une application a le focus, alors l'application est active. L'application actuelle est inactive lorsque la fenêtre d'une autre application devient active. Lorsque l'application est fermée, le destructeur de TApplication définit Active sur False. Dans l'application, vous pouvez utiliser un timer (TTimer) pour vérifier la valeur de l'attribut Active afin de déterminer si l'application actuelle est active afin qu'un traitement approprié puisse être effectué. Des opérations spécifiées peuvent également être définies dans l'événement OnActive et l'événement OnDeactive. 1.2 Propriété DialogHandle La propriété DialogHandle fournit un mécanisme permettant aux applications Delphi d'utiliser des boîtes de dialogue non Delphi. La définition est la suivante : property DialogHandle : HWnd ; Lorsque vous utilisez la fonction API CreateDialog pour créer une boîte de dialogue non modale, vous devez utiliser DialogHandle et afficher les messages dans la boucle de messages de l'application pour effectuer les opérations correspondantes. Par exemple, lorsqu'une boîte de dialogue non modale reçoit un message d'activation (WM_NCACTIVATE), son handle peut être attribué à DialogHandle, et lorsque la boîte de dialogue reçoit un message de désactivation, DialogHandle est défini sur 0. 1.3 Attribut ExeName L'attribut ExeName contient le nom du fichier d'application exécutable et les informations de chemin. Elle est définie comme suit : propriété ExeName : string ExeName est une propriété en lecture seule. Utilisez ExeName pour obtenir le nom de fichier du fichier exécutable de l'application. C'est un attribut très utile. Par exemple, lors de l'exécution de l'application f:/media/myapp.exe sur le CD, vous devrez peut-être accéder aux fichiers du répertoire f:/media/data/ ou déterminer la lettre de lecteur où se trouve l'application. À ce stade, vous pouvez utiliser les fonctions ExtractFilePath et ExtractFileName fournies par Delphi pour analyser l'attribut ExeName afin d'obtenir les informations requises. 1.4 Attribut Handle L'attribut Handle permet d'accéder au handle de la fenêtre principale de l'application. La définition est la suivante : propriété Handle : HWND ; La propriété Handle doit être utilisée lors de l'appel d'une fonction API Windows qui nécessite un handle de fenêtre parent. Par exemple, une bibliothèque de liens dynamiques (DLL) dans une application peut nécessiter un handle de fenêtre parent pour pouvoir apparaître et être mise au premier plan. Utilisez Application.Handle pour former plusieurs fenêtres de l'application, afin que ces fenêtres puissent être réduites, restaurées, activées ou désactivées dans l'application. Remarque : lors de l'écriture d'une bibliothèque de liens dynamiques qui utilise des formulaires VCL, le handle de la fenêtre principale du programme principal en cours d'exécution doit être attribué à la propriété Application.Handle de la bibliothèque de liens dynamiques. Cela fait que le formulaire de la bibliothèque de liens dynamiques fait partie de l’application principale. Il est important de souligner que vous ne devez jamais attribuer de valeur à Application.Handle dans une application EXE. 1.5 Attribut HelpFile L'attribut HelpFile spécifie le nom de fichier utilisé par l'application pour afficher le contenu de l'aide. La définition est la suivante : propriété HelpFile : string ; L'utilisation de HelpFile permet à l'application de disposer d'un fichier d'aide utilisant le système d'aide standard de Windows. Windows affiche le fichier d'aide spécifié par la propriété HelpFile. Pour que votre application y parvienne, vous devez attribuer à la propriété HelpFile la valeur d'un nom de fichier au moment de l'exécution ou spécifier un fichier d'aide dans la page Application de la boîte de dialogue Projet|Options au moment du design. Par défaut, HelpFile est une chaîne vide ('') et les méthodes d'aide de l'application ignorent toutes les tentatives d'affichage de l'aide. Si HelpFile contient du contenu, la méthode de rubrique d'aide affichera le système d'aide de Windows pour fournir une aide en ligne basée sur le nom du fichier. Remarque : Si le fichier d'aide de la fenêtre active est spécifié, ce fichier sera affiché de préférence au fichier d'aide de l'application. 1.6 Indice d'attribut L'indice d'attribut spécifie la chaîne de texte qui apparaît dans la zone Indice d'aide. La définition est la suivante : property Hint: string; La propriété TApplication.Hint est la valeur Hint du contrôle ou de l'élément de menu parcouru par la souris. Cet attribut peut également se voir attribuer une valeur de chaîne qui fournit une action, une erreur ou d'autres informations à l'utilisateur. Par conséquent, l'utilisation de la propriété Hint peut également : transférer les informations d'invite du contrôle vers une autre zone d'affichage, par exemple, afficher l'invite dans la barre d'état via le gestionnaire d'événements OnHint. A ce moment, l'attribut Hint est lu. Décrivez brièvement l'état de l'application lorsqu'elle exécute une action. À ce stade, l’attribut Hint est défini. L'invite d'aide apparaît lorsque l'événement OnHint se produit. Par conséquent, même si le titre de la barre d'état est affecté à la propriété Hint de TApplication, par exemple, le titre du contrôle de barre d'état affiche la valeur de chaîne actuelle de la propriété Hint, il doit être attribué à l'événement OnHint. La chaîne d'indices se compose de deux parties : une astuce courte et une astuce longue. Les invites courtes sont utilisées pour les invites contextuelles concises ; les invites longues et les invites courtes sont séparées par une barre verticale "|" et sont utilisées pour afficher des informations d'invite plus détaillées dans la barre d'état. Vous pouvez utiliser les fonctions de chaîne GetShortHint et GetLongHint fournies dans l'unité Controls pour obtenir des indications courtes et longues à partir de l'attribut Hint. Remarque : Lorsqu'une application fournit des informations à l'utilisateur sur l'occurrence d'un événement en définissant la propriété Hint, il convient de rappeler que par défaut, lorsque la souris survole un contrôle, la chaîne Hint est réinitialisée à la valeur de la propriété Hint. du contrôle. 1.7 Propriété HintHidePause La propriété HintHidePause spécifie l'intervalle de temps avant que l'invite d'aide soit masquée et que la souris soit éloignée du contrôle ou de l'élément de menu. Elle est définie comme suit : propriété HintHidePause : Integer ; utilisez HintHidePause pour spécifier le temps d'attente en millisecondes. Cette propriété est définie sur 2 500 millisecondes (2,5 secondes) dans le constructeur de TApplication. L’info-bulle d’un contrôle ou d’un élément de menu est spécifiée dans la propriété Hint. Remarque : Par défaut, la valeur de HintHidePause doit être prédéterminée pour être 3 à 5 fois la valeur de l'attribut HintPause. 1.8 Propriété MainForm La propriété MainForm identifie de manière unique le formulaire principal de l'application. Elle est définie comme suit : property MainForm : TForm ; Le formulaire spécifié par la propriété MainForm n'est pas nécessairement le même que la fenêtre principale de l'application. La valeur de la propriété MainForm doit être le premier formulaire parmi tous les formulaires créés par la méthode CreateForm, mais le formulaire ne peut pas être la fenêtre principale de l'application. Lors de la création d'un nouveau projet, la valeur de l'attribut MainForm est automatiquement définie sur Form1. Au moment de la conception, vous pouvez spécifier l'un des nombreux formulaires comme MainForm via la page Formulaires de la boîte de dialogue Projet | Options. La propriété MainForm ne peut pas être modifiée au moment de l'exécution car elle est en lecture seule. Le formulaire principal est le premier formulaire créé par le thème de l'application. L'application se termine à la fermeture du formulaire principal. Dans une application, vous pouvez appeler la méthode Application.MainForm.Close pour terminer l'application. Vous pouvez obtenir les valeurs de propriétés telles que Application.MainForm.Top et Application.MainForm.Left pour déterminer la position et la taille de l'actuellement. fenêtre active. 1.9 Propriété ShowMainForm La propriété ShowMainForm détermine s'il faut afficher le formulaire principal au démarrage de l'application. Il est défini comme suit : propriété ShowMainForm : Boolean ; L'application utilise la propriété ShowMainForm pour contrôler si et quand afficher son formulaire principal. Le constructeur de TApplication définit ShowMainForm sur True. Par défaut, le formulaire principal sera affiché, comme spécifié dans la propriété MainForm. Si vous devez masquer le formulaire principal au démarrage de l'application, vous devez définir ShowMainForm sur False avant d'appeler Application.Run dans le fichier de projet principal et vous assurer que la valeur de la propriété Visible du formulaire principal est False. Ceci est utile dans de nombreuses implémentations de serveurs d'automatisation OLE, par exemple pour masquer le formulaire principal du programme serveur lors du démarrage du service d'automatisation. De plus, si vous devez afficher une image flash (Flash) au démarrage de l'application et effectuer quelques préparations pour l'environnement de l'application, ainsi que désactiver l'affichage du formulaire principal, cela peut également être réalisé en utilisant l'attribut ShowMainForm. Par exemple, au démarrage de Delphi, l'affichage du formulaire principal est désactivé. 1.10 Attribut Terminé L'attribut Terminé indique si le programme a reçu le message Windows WM_QUIT qui termine le programme. La définition est la suivante : propriété Terminé : Booléen ; Terminé est une propriété en lecture seule. Cette propriété est principalement utilisée lors de l'appel de la méthode ProcessMessages afin que l'application n'ait pas à arrêter d'essayer de traiter les messages Windows. Lorsque la méthode ProcessMessages reçoit le message WM_QUIT, Terended sera défini sur True. Les applications Delphi reçoivent toujours le message WM_QUIT car le formulaire ou l'application principale est fermé ou parce que la méthode Terminate est appelée. Lorsqu'une application effectue une opération très intensive qui consomme beaucoup de ressources système, la méthode Application-on.ProcessMessages doit être appelée périodiquement et la propriété Application.Terended doit être vérifiée pour déterminer si l'opération doit être terminée pour terminer l'application. . 1.11 Propriété UpdateFormatSettings La propriété UpdateFormatSettings spécifie si l'application met automatiquement à jour les paramètres de format lorsque l'utilisateur modifie la configuration du système. Défini comme suit : propriété UpdateFormatSettings : booléen ; L'utilisation de la propriété UpdateFormatSettings peut contrôler la mise à jour automatique des paramètres de format. Le constructeur de TApplication définit cette propriété sur True. La propriété UpdateFormatSett-ings sera vérifiée lorsque l'application recevra le message WM_WININICHANGE. Il est recommandé d'utiliser les paramètres de format par défaut, qui sont les paramètres Windows locaux. Vous pouvez définir UpdateFormatSe-ttings sur False pour éviter de modifier les paramètres de format lors de l'exécution de l'application Delphi. 1.12 Attribut UpdateMetricSettings L'attribut UpdateMetricSettings indique s'il faut mettre à jour les paramètres associés tels que la police de la fenêtre d'invite et le titre de l'icône. La définition est la suivante : propriété UpdateMetricSettings : Boolean ; La propriété UpdateFormatSettings indique si les modifications apportées aux paramètres tels que la police de la fenêtre d'invite et le titre de l'icône dans le système sont reflétées dans les modifications des paramètres associés dans l'application. Le constructeur de TApplication définit la valeur initiale de UpdateMetricSettings sur True. 2. Méthode 2.1 Méthode BringToFront Méthode BringToFront place la fenêtre la plus récemment active dans l'application au premier plan de toutes les fenêtres du bureau. Sa définition est la suivante : procédure BringToFront; Utilisez la méthode BringToFront pour rechercher la fenêtre active la plus récente appartenant au formulaire principal et la faire passer au premier plan. La méthode BringToFront peut également tester et voir si une fenêtre est visible (Visible) et valide (Enabled) avant de devenir la fenêtre la plus en avant. Par exemple, lorsqu'une application reçoit du courrier, un gestionnaire spécialisé devra peut-être être activé et placé au premier plan du bureau Windows. À ce stade, vous pouvez appeler la méthode Application.BringToFront pour y parvenir. 2.2 Méthode Méthode CreateForm La méthode CreateForm est utilisée pour créer un nouveau formulaire (formulaire). Elle est définie comme suit : procédure CreateForm(FormClass: TFormClass; var Reference); Les applications Delphi appelleront toujours la méthode CreateForm. Par conséquent, il est rarement nécessaire pour les programmeurs d’appeler directement la méthode CreateForm. Un projet Delphi typique inclut un ou plusieurs appels à la méthode CreateForm dans la partie code principale du projet et contrôle automatiquement la création du formulaire lors de l'utilisation du concepteur de formulaires. Vous pouvez également appeler la méthode CreateForm au moment de l'exécution pour créer dynamiquement un formulaire. La méthode CreateForm crée un nouveau formulaire spécifié basé sur le paramètre FormClass et affecte le formulaire au paramètre variable Reference. Le propriétaire du formulaire nouvellement créé est l'objet Application. L'application utilisera par défaut le premier formulaire créé en appelant CreateForm comme formulaire principal du projet. 2.3 Méthode HandleException La méthode HandleException fournit un handle par défaut pour les exceptions d'application. Elle est définie comme suit : procédure HandleException(Sender: TObject); La méthode HandleException est utile pour les auteurs de composants spécifiques car elle peut générer un événement qui n'a pas à répondre aux messages Windows. Vous pouvez utiliser le gestionnaire d'événements OnException dans votre application pour contrôler d'autres opérations d'exception dans le code personnalisé. Dans le code de l'application, si l'exception ignore tous les blocs try, l'application appellera automatiquement la méthode HandleE-xception et affichera une boîte de dialogue indiquant qu'une erreur s'est produite. À moins que l'objet d'exception ne soit EAbort, alors Han-dleException appellera le handle OnException (s'il existe), sinon ShowException sera appelé pour afficher une boîte de dialogue demandant une erreur. 2.4 Méthode UnhookMainWindow La méthode UnhookMainWindow permet de libérer le programme accroché sur le formulaire principal par la méthode HookMainWindow. La définition est la suivante : tapez TWindowHook = function(var Message : TMessage) : Booléen de l'objet ; procédure UnhookMainWindow(Hook : TWindowHook) ; Utilisez UnhookMainWindow pour libérer la fenêtre hook. Spécifiez la procédure de la boîte de dialogue dans le paramètre Hook. Le type TwindowHook est le paramètre permettant d'appeler la méthode HookMainWindow. Ce paramètre est le pointeur de méthode permettant d'appeler le programme de dialogue dans une boîte de dialogue non Delphi. Les programmes de dialogue sont similaires aux programmes de fenêtres dans le sens où ils traitent les messages des boîtes de dialogue, mais la syntaxe est différente. 3. Événement 3.1 Événement OnActivate L'événement OnActivate se produit lorsque l'application devient active. La définition est la suivante : type TNotifyEvent = procédure (Expéditeur : TObject) de l'objet ; propriété OnActivate : TNotifyEvent Utilisez l'événement OnActive pour écrire un gestionnaire d'événements afin de spécifier un traitement spécial lorsque l'application devient active. Une application Windows devient active lors de son exécution initiale ou lorsque son focus est retransféré vers l'application actuelle à partir d'une autre application Windows. 3.2 Événement OnDeactivate L'événement OnDeactivate se produit lorsque l'application devient inactive. Il est défini comme suit : type TNotifyEvent = procédure (Sender : TObject) de l'objet ; propriété OnDeactivate : TNotifyEvent ; L'événement OnDeactive peut être déclenché immédiatement avant que l'application ne devienne inactive, complétant ainsi le traitement spécial spécifié dans le gestionnaire d'événements. L'événement OnDeactive de l'application actuelle se produit lorsque l'utilisateur passe de l'application actuelle à une autre application. 3.3 Événement OnException L'événement OnException se produit lorsqu'une exception sans handle se produit dans l'application. Il est défini comme suit : type TExceptionEvent = procédure (Expéditeur : TObject ; E : Exception) de l'objet ; propriété OnException : TExceptionEvent Vous pouvez utiliser l'événement OnException pour modifier l'action par défaut lorsqu'une exception sans gestionnaire se produit dans l'application ; Dans la méthode TApplication.HandleException, le gestionnaire d'événements OnException est automatiquement appelé. L'événement OnException est utilisé uniquement pour gérer les exceptions qui se produisent lors du traitement des messages. Les exceptions qui se produisent avant ou après l'exécution de Application.Run ne provoqueront pas l'événement OnException. Si une exception est ignorée dans le bloc try du code de l'application, l'application appellera automatiquement la méthode HandleException. À moins que l'objet d'exception ne soit un EAbort, HandleException appellera le handle OnException (s'il existe), sinon ShowException sera appelé pour afficher une boîte de dialogue demandant une erreur. Le type TExceptionEvent est le type de l'événement OnException, qui pointe vers une méthode de gestion des exceptions dans l'application. Le paramètre Sender est l'objet qui lève l'exception et le paramètre E est l'objet d'exception. 3.4 Événement OnHelp L'événement OnHelp se produit lorsque l'application reçoit une demande d'aide. La définition est la suivante : tapez THelpEvent = function (Command : Word ; Data : Longint ; var CallHelp : Boolean) : Booléen de l'objet ; propriété OnHelp : THelpEvent ; Utilisez OnHelp pour écrire un gestionnaire d'événements afin d'effectuer un traitement spécial en cas de demande. pour obtenir de l'aide. Les méthodes HelpContext et HelpJump déclenchent automatiquement l'événement OnHelp. Définissez CallHelp sur True pour permettre à VCL d'appeler WinHelp après que l'événement se produit ; définissez CallHelp sur False pour empêcher VCL d'appeler WinHelp. Toutes les méthodes liées à l'aide dans les applications Delphi passent par l'événement OnHelp. WinHelp est appelé uniquement lorsque le paramètre CallHelp de l'événement OnHelp renvoie True ou lorsque l'événement OnHelp n'est pas affecté à un handle valide. 3.5 Événement OnHint Lorsque le pointeur de la souris se déplace à travers un contrôle ou un élément de menu et que le contrôle ou l'élément de menu peut afficher une invite d'aide, l'événement OnHint se produit. La définition est la suivante : type TNotifyEvent = procédure (Expéditeur : TObject) de l'objet ; propriété OnHint : TNotifyEvent ; Le gestionnaire d'événements écrit avec OnHint peut effectuer l'opération spécifiée lorsque l'événement OnHint se produit. Lorsque l'utilisateur place le pointeur de la souris sur un contrôle et que la valeur de la propriété Hint du contrôle n'est pas une chaîne vide (''), l'événement OnHint se produit. L'événement OnHint est généralement utilisé pour afficher la valeur de la propriété Hint d'un contrôle ou d'un élément de menu comme titre d'un contrôle de panneau (tel que TStatusBar), de sorte que le panneau est utilisé comme barre d'état. Lorsque l'événement OnHint se produit, l'attribut Hint est généralement spécifié sous la forme d'un indice d'aide et d'un indice plus long affiché ailleurs. 3.6 Événement OnIdle L'événement OnIdle se produit lorsque l'application devient inactive. La définition est la suivante : type TIdleEvent = procédure (Expéditeur : TObject ; var Done : Boolean) de l'objet ; propriété OnIdle : TIdleEvent Utilisez OnIdel pour écrire un gestionnaire d'événements afin de terminer l'opération spécifiée lorsque l'application est inactive. Une application est inactive lorsqu'elle n'exécute aucun code. Par exemple, une application est inactive pendant qu'elle attend la saisie de l'utilisateur. Le type TIdelEvent est le type d'événement OnIdel, qui pointe vers une méthode qui s'exécute lorsque l'application est inactive. L'objet TIdelEvent a une variable Done dont la valeur par défaut est True. Lorsque Done est True, la fonction API Windows WaitMessage sera appelée au retour d'OnIdel. WaitMessage permet aux autres applications de prendre le contrôle jusqu'à ce qu'un nouveau message apparaisse dans la file d'attente des messages de l'application. Lorsque le paramètre Done est False et que l'application n'est pas occupée, l'application ne permettra pas aux autres applications d'obtenir le focus de contrôle. Lorsque l'application devient inactive, l'événement OnIdel ne se produit qu'une seule fois et le prochain événement OnIdel ne peut pas se produire tant que le paramètre Done n'est pas défini sur True. La définition de Done sur False par l'application élimine les décomptes irréguliers du temps CPU qui peuvent avoir un impact sur les performances globales du système. 3.7 L'événement OnMessage est généré lorsque l'application reçoit un message WINDOWS. Il est défini comme suit : type TMessageEvent = procédure (var Msg : TMsg ; var Handled : Boolean) de l'objet ; propriété OnMessage : TmessageEvent est utilisé pour recevoir les messages WINDOWS. peut recevoir tous les messages envoyés par le programme à WINDOWS. Cet événement est généré lorsque l'application reçoit un message. La variable Msg est de type message WINDOWS.