A propos des Message Box

Résolu
Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 - 14 juin 2006 à 10:33
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 14 juin 2006 à 15:33
Bonjour,


Voilà j'ai une petite question vis à vis des Boite de dialogue façon Messagebox.


Voici sa syntaxe sous Delphi :
functionMessageBox(constText,Caption:PChar;Flags:Longint=MB_OK):Integer;


Personnellement, pour quitter et en sachant si le document est enregistré ou pas, j'utilise une variable boolean.
Si celle-ci est à True alors j'affiche le message de ce style :


Messagebox(Handle,'Votre document n''est pas enregistré, souhaitez-vous le faire ?','Document non enregistré', MB_YESNOCANCEL);
Ce qui me donne donc un message tout à fait correct mais sans panneau.


Mais j'ai trouvé ce style de message dernièrement :


Messagebox(Handle,'Votre document n''est pas enregistré, souhaitez-vous le faire ?','Document non enregistré', 51);
Et là j'ai un panneau superbe avec un mt_warning + les boutons Oui, Non et Annuler.
Donc en sorte, un Messagebox plus court plus facile à retenir SI on utilise toujours la même chose, et en prime avec un panneau.


Donc d'ou vient ce 51


J'ai cherché dans l'aide, chaque ID à une valeur bien précise allant de 1 à 7.
Donc si je prend 5 et 1 ca me donne ces deux boutons :



Valeur            Valeur numérique     Signification

IDIGNORE                 5                     L'utilisateur a choisi le bouton Ignorer.
IDOK                          1                     L'utilisateur a choisi le bouton OK.


Mais ce qui pour moi ne me donne que deux boutons, donc je ne comprend pas comment avec juste de nombre on peut avoir autant de précision dans le panneau.


Pourriez-vous éclaire ma lanterne s'il vous plait


Merci d'avance


@+
A voir également:

3 réponses

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
14 juin 2006 à 12:03
Salut,


En fait :
MessageBox(Handle,
           'Votre document n''est pas enregistré, souhaitez-vous le faire ?',
           'Document non enregistré',
           51);


peut s'écrire :
MessageBox(Handle,
           'Votre document n''est pas enregistré, souhaitez-vous le faire ?',
           'Document non enregistré',
           MB_YESNOCANCEL or MB_ICONEXCLAMATION);


ou encore, ce qui explique mieux le "51" :
MessageBox(Handle,
           'Votre document n''est pas enregistré, souhaitez-vous le faire ?',
           'Document non enregistré',
           $00000003 or $00000030);


En effet :
$00000003 or $00000030 = $00000033
ce qui donne en décimal :
3 or 48 = 51


Se reporter à Windows.pas et l'aide en ligne pour complément d'information.


Bonne prog'

japee
Rejoignez-nous