Bonjour...
J'aimerai savoir comment on fait pour dévalider la petite croix (pour la fermeture) d'une messageBox...
Merci :P
Version imprimable
Bonjour...
J'aimerai savoir comment on fait pour dévalider la petite croix (pour la fermeture) d'une messageBox...
Merci :P
Pourquoi faire?
En principe, si tu fais un message box de ce genre
Le fait de cliquer sur la croix windows va provoquer mrCancel, comme le bouton Annuler.Code:MessageDlg('Mon mess',mtConfirmation,[mbOK,MbCancel],0) ;
Corrigez moi si je me trompe...
Salut,
c'est exactement ça.Citation:
Envoyé par Alyx²
Sinon si tu ne veux vraiment pas la croie rouge tu peux te "bricoler" une petite boite de dialogue a partir d'une fiche et mettre tous les BorderIcons à false comme sa la croix rouge ne sera plus disponible.
La solution d'Alyx est la plus pratique, seulement s'il n'y a pas de bouton cancel, appuyer sur la croix rouge reviens à faire un cancel donc tu devras le gérer.
En plus il faut gérer la touche Echap qui est le raccourci Windows de Cancel-Annuler...
D'où l'interet de gerer le cas mrCancel quoi qu'il en soit.
Sauf si c'est pour un simple message de notification, là ca n'a pas vraiment d'importance...;)
Si tu utilises MessageBox (l'API) plutôt que MessageDlg (de la VCL), la croix n'est activée (et la touche échap) que si un bouton Cancel est affiché.
J'ai aussi codé une fonction ShowDialog (voir l'unité SjrdUsual) qui accepte des paramètres de type VCL (type string et set of au lieu de PChar et flags) et qui appelle MessageBox en interne.
Comme ça tu peux utiliser les API natives sans même t'en rendre compte (c'est le principe même de la VCL d'ailleurs).