Frage

Delphi ; Was sind die Unterschiede zwischen Application.MessageBox, Windows.MessageBox oder Dialogs.MessageDlg? Oder welche ist effiziente Computerspeicher zu benutzen?

War es hilfreich?

Lösung

Windows.MessageBox ist die WinAPI MessageBox ist Application.MessageBox ein Wrapper um ihn herum. Dialogs.MessageDlg ist jedoch ein VCL-Formular. Also, wenn Sie sich Sorgen um Speicher oder Thread-Sicherheit sind, können die ersten beiden besser geeignet sein. MessageDlg OTOH ist flexibler und einfacher zu bedienen (IMHO, natürlich).

Andere Tipps

Windows MessageBox von O lokalisiert ist (Ja, Nein, Abbrechen ...), kann MessageDlg von Hand lokalisiert werden.

Warum interessieren Sie sich über die winzige Menge an Speicher durch ein Meldungsfeld verwendet? Es gibt viele andere Dinge, die man sich mit sein sollte, wenn über eine Delphi App schreiben. In jedem Fall, soweit ich bin mir bewusst, diese sind alle dünnen Wrapper um die Windows-API MessageBox.

Wenn ich mich richtig erinnere, gibt es einen wichtigen Unterschied bewteen die Delphi VCL Meldungsfelder und die Windows-Einsen - können Sie Flags specifiy, dass die Anwendung Nachrichten mehr bedient (zB MB_SYSTEMMODAL) zu stoppen. Dies kann zur Anzeige von Fehlern nützlich sein, wenn Sie Ihre Anwendung ‚einzufrieren‘ müssen - das Delphi MessageDlg noch Timer-Ereignisse auch während auf dem Bildschirm ausgelöst. Siehe auch:

MSDN MessageBox Sachen

Der Speicherverbrauch sollte nicht so ein Problem mit Message-Box sein. Ich persönlich bevorzuge das VCL-Formular (Dialogs.MessageBox), da ich es von der Consts.pas Einheit lokalisieren kann. Ich mag es auch aus der Tatsache, dass ich benutzerdefinierte Steuerelemente hinzufügen kann, wie Kontrollkästchen „Diese Meldung nicht mehr anzeigen“ und andere Sachen wie diese.

Sie sind alle das Gleiche tun - aufrufen WinAPI Funktion MessageBox (). Der Unterschied in dem Ressourcenverbrauch, wenn ein minimal ist. Wenn Sie so viel Pflege können Sie anrufen MessageBox () direkt -. Nur schließen „verwendet Windows“

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top