Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi messagedlg oder messagebox (https://www.delphipraxis.net/5258-messagedlg-oder-messagebox.html)

Mat 30. Mai 2003 03:41


messagedlg oder messagebox
 
Hi,

gibt's zwischen den beiden irgendwelche unterschiede, bzw. welche sollte man eher benutzen..

oder ist das nur ne frage der persoenlichen vorliebe?

Luckie 30. Mai 2003 04:02

Mit der MessageBox hast du mehr Möglichkieten der Formatierung und die Beschriftung der Buttons richtet sich nach der Systemsprache, während sich der MessageDlg die Beschriftung aus einer Delphi Unit holt, welche dann in der Sprache der ID beschriftet werden.

Desweiteren kann man eventuell auf die Unit Dialogs verzichten, wenn man Messageboxen benutzt, da diese in der Unit Windows deklariert ist, welche sowieso immer eingebunden wird.

Mat 30. Mai 2003 04:58

das mit der sprache klingt ja mal nicht schlecht.

leider kann man aber bei messagedlg nur eigene captions machen, wenn der Typ custom ist, bei dem aber keine Icons mehr moeglich sind..


schade..


danke

Mat

Luckie 30. Mai 2003 05:02

Das geht mit der Messagebox ohne weiteres - noch ein Vorteil.

Mat 30. Mai 2003 05:04

genau das isses ja, ich kann nicht beides gleichzeitig haben... :(


naja, hauptsache das programm laeuft :D


Mat

Luckie 30. Mai 2003 05:07

Was, wie beides? Was kannst du denn bei der MessageBox nicht haben, was du aber beim MessgeDlg hast?

Mat 30. Mai 2003 17:49

na ich haette gerne die button-beschriftung aus der ID (messagedlg) und nen icon und ne seblstdefinierte Caption des Dialogs (messagebox)..

beides gleichzeitig geht ja nich...


Mat

Luckie 30. Mai 2003 17:57

Was ist denn an der Buttonbeschriftung vom MessageDlg anders?

Mat 30. Mai 2003 19:12

Zitat:

Zitat von Luckie
Was ist denn an der Buttonbeschriftung vom MessageDlg anders?

na wie du ja gesagt hast, wenn ich messagedlg benutze, dann sind die beschriftungen abhaengig vom Programm, nicht von Windows..
also bei mir dann 'Yes' bzw. 'No'. (wobei noch rauskriegen muss, wieso mein program auf englisch laeuft.. :) )

was ich mit caption meinte, war der titel des Dialogs.

bei "messagedlg('hallo', mtWarning, [mbYes], 0);" waere der immer 'Warning' , wenn ich mtConfirmation nehme, ist der Titel 'Confirm'..

das find ich nicht gut, das einzig akzeptable waere mtCustom, wobei dann als Titel der Programmname verwendet wird, allerdings gibts bei mtCustom kein Icon mehr...


und bei der messagebox habe ich nen freiwaehlbaren Titel und ein frei waehlbares Bild, nur eben die Button-Beschriftung in der Systemsprache...


Mat

Christian Seehase 30. Mai 2003 20:44

Moin Mat,

Zitat:

Zitat von Mat
nur eben die Button-Beschriftung in der Systemsprache...

also ich für meinen Teil empfinde das als von Vorteil.
Um die Sprache, z.B., der MessageDlg Button zu ändern, musst Du die Const.pas ändern.

Mat 30. Mai 2003 21:28

Zitat:

Zitat von Christian Seehase
Moin Mat,

Zitat:

Zitat von Mat
nur eben die Button-Beschriftung in der Systemsprache...

also ich für meinen Teil empfinde das als von Vorteil.

das find ich gut, aber der dialogtitel ist ja leider nicht variabel (s.o.)


Mat

Luckie 30. Mai 2003 21:35

Zitat:

Zitat von Mat
Zitat:

Zitat von Christian Seehase
Moin Mat,

Zitat:

Zitat von Mat
nur eben die Button-Beschriftung in der Systemsprache...

also ich für meinen Teil empfinde das als von Vorteil.

das find ich gut, aber der dialogtitel ist ja leider nicht variabel (s.o.)

Gerade habe ich gedacht, jetzt hätte ich dich verstanden und dann kommt so was.
Bei der Messagebox sind die Buttons in der Systemsprache und der Titel ist frei wählbar und du kannst immer ein Symbol anzeigen lassen.

Was hast du denn jetzt für ein Problem?

Mat 30. Mai 2003 21:54

:)

dass das mit der messagebox geht, stimmt ja.

ich fand die idee toll, das der messagedlg die buttons nicht in der systemsprache anzeigt (sondern die sprache des programms nimmt).

nur da beim messagedlg der dialogtitel eben nicht frei wählbar ist, nutzt mir das nichts und ich muss nachwievor die messagebox nehmen...


ich hab damit kein problem, ist nur einfach schade..




Mat

Christian Seehase 30. Mai 2003 22:09

Moin Mat,

einem User der die Sprache des Programmes nicht versteht wird es, vermutlich, herzlich egal sein, was auf den Button steht, wenn er/sie eh' nicht verstehen kann, was welcher Button bewirkt.

Luckie 30. Mai 2003 22:13

Und bei der Messagebox kann er zumindest noch 'Ja', 'Nein', 'OK', 'Abbrechen' erkennen und so eventuell schlimmeres verhindern. :wink:

Marco Haffner 30. Mai 2003 22:57

Zitat:

Zitat von Mat
ich fand die idee toll, das der messagedlg die buttons nicht in der systemsprache anzeigt (sondern die sprache des programms nimmt).

Wenn Du Dein Programm in englischer Sprache mit einer deutschen Delphi-Version geschrieben hast, mußt Du erst die Beschriftungen in der Consts.pas anpassen, damit auch die MessageDlg Beschriftungen in englisch angezeigt werden. Setzt Du dann noch Standard-Dialoge wie den Öffnen-Dialog ein, hier sind die Beschriftungen immer in Systemsprache.
Und wenn Die die tippereien mit MessageBox zu viel werden, dann erstelle doch eine eigene Unit in die Du alles für Deinen eigenen MessageDlg benötigte reinpackst.

Zitat:

Zitat von Luckie
Und bei der Messagebox kann er zumindest noch 'Ja', 'Nein', 'OK', 'Abbrechen' erkennen und so eventuell schlimmeres verhindern.

Naja, das kommt dann erstens auf die Frage an und zweitens wie der Programmierer die Tasten interpretiert.
Da gibt es dann die, die eine mit Ja/Nein zu beantwortende Frage in den Dialog packen, als Schaltfläche aber Ja und Abbrechen verwenden.
Aber was nützt auch die am besten formulierte Frage, wenn der DAU vorm Rechner sie sich nicht aufmerksam durchliest... :oops:

Luckie 30. Mai 2003 23:05

@marco: Na ja gut. Manchmal weiß ich auch im deutschen nicht, was ich anklicken soll damit er das macht was ich will. Aber wenn er zu mindest die Buttons lesen kann steigt doch schon mal die Chance, dass es nicht gänzlich daneben geht. :wink:

Marco Haffner 30. Mai 2003 23:18

Zitat:

Zitat von Luckie
Aber wenn er zu mindest die Buttons lesen kann steigt doch schon mal die Chance, dass es nicht gänzlich daneben geht.

Ja, die Wahrscheinlichkeit die richtige Schaltfläche zu finden wird wohl so um die 70% steigen.

Zitat:

Soll der Ordner "Windows" wirklick gelöscht und sein gesamter Inhalt endgültig gelöscht werden werden?
Natürlich will ich löschen... :coder:

Mat 30. Mai 2003 23:22

naja, wenn ich ein programm aber mit englischen texten auf meinem deutschen system laufen lasse (was ich oefter mache), dann ist es schon schoener, wenn unter 'Do you really want to quit?' eben auch 'Yes' oder 'No' steht...

aber faellt ja eh aus, wegen den festen dialog-titeln.




Mat


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz