Also know as
Messages postés259Date d'inscriptionsamedi 13 décembre 2003StatutMembreDernière intervention22 novembre 2010
-
14 juin 2006 à 10:33
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 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.
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 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.