Pregunta

En Delphi ; ¿cuáles son las diferencias entre Application.MessageBox, Windows.MessageBox o Dialogs.MessageDlg? O lo que es más eficiente usar la memoria del ordenador?

¿Fue útil?

Solución

Windows.MessageBox es de la API de Windows de mensaje, Application.MessageBox es una envoltura alrededor de ella. Dialogs.MessageDlg sin embargo es una forma VCL. Así que si usted está preocupado acerca de la memoria o el hilo de seguridad, los dos primeros podrían ser más adecuados. MessageDlg Otoh es más flexible y más fácil de usar (en mi humilde opinión, por supuesto).

Otros consejos

cuadro de mensaje de Windows se localiza por el sistema operativo (Sí, No, Cancelar ...), MessageDlg puede localizar con la mano.

¿Por qué se preocupan por la pequeña cantidad de memoria utilizada por un cuadro de mensaje? Hay muchas otras cosas que usted debe le conciernen con la hora de escribir una aplicación Delphi. En cualquier caso, por lo que yo soy consciente de todas estas son las envolturas finas alrededor de la API de Windows de mensaje.

Si no recuerdo mal, hay una distinción importante bewteen los cuadros de mensaje Delphi VCL y los de Windows - se puede specifiy banderas que detienen los mensajes de aplicación pueda dar servicio (por ejemplo MB_SYSTEMMODAL). Esto puede ser útil para señalar errores de donde tiene que 'congelar' su aplicación - Delphi MessageDlg igualmente se disparará eventos del temporizador, incluso mientras en la pantalla. Ver:

MSDN cosas de mensaje

El uso de memoria no debería ser un problema con los cuadros de mensaje. Yo personalmente prefiero la forma VCL (Dialogs.MessageBox) ya que puedo localizarla desde la unidad Consts.pas. También me gusta el hecho de que puedo agregar controles personalizados a ella, como casillas de verificación de "no volver a mostrar" y otras cosas como esta.

Todos hacen lo mismo - invocar WinAPI función MessageBox (). La diferencia en el consumo de recursos en su caso es mínimo. Si te importa tanto puede llamar a MessageBox () directamente -. Basta con incluir "utiliza Windows"

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top