Question

Delphi ; quelles sont les différences entre Application.MessageBox, Windows.MessageBox ou Dialogs.MessageDlg? Ou qui est plus efficace d'utiliser la mémoire de l'ordinateur?

Était-ce utile?

La solution

Windows.MessageBox est WinAPI MessageBox, Application.MessageBox est une enveloppe autour d'elle. Dialogs.MessageDlg est cependant une forme VCL. Donc, si vous êtes préoccupé par la mémoire ou la sécurité des threads, les deux premiers pourraient être mieux. MessageDlg OTOH est plus souple et plus facile à utiliser (à mon humble avis, bien sûr).

Autres conseils

de Windows MessageBox est localisée par OS (Oui, Non, Annuler ...), MessageDlg peut être localisée à la main.

Pourquoi vous souciez-vous la petite quantité de mémoire utilisée par une boîte de message? Il y a beaucoup d'autres choses que vous devriez vous préoccuper lors de l'écriture d'une application Delphi. Dans tous les cas, pour autant que je sache ce sont tous minces des emballages autour de l'API Windows MessageBox.

Si je me souviens bien, il y a une distinction importante bewteen les boîtes de message VCL Delphi et ceux de Windows - vous pouvez spécifier des drapeaux qui arrêtent les messages d'application d'être desservis (par exemple MB_SYSTEMMODAL). Cela peut être utile pour l'affichage des erreurs où vous avez besoin de « geler » votre application - Delphi MessageDlg se déclenche quand même des événements de minuterie même tout à l'écran. Voir:

choses MSDN MessageBox

Utilisation de la mémoire ne doit pas être un problème avec des boîtes de message. Personnellement, je préfère la forme VCL (Dialogs.MessageBox) depuis que je peux le localiser à partir de l'unité Consts.pas. J'aime aussi le fait que je peux ajouter des contrôles personnalisés à elle, comme des cases à cocher pour « ne plus afficher ce nouveau » et d'autres choses comme ça.

Ils font tous la même - appeler la fonction WinAPI MessageBox (). La différence de consommation de ressources si tout est minime. Si vous vous souciez tant que vous pouvez appeler MessageBox () directement -. Il suffit d'inclure « utilise Windows »

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top