Messagedlg : changer le bouton par défaut [Résolu]

Signaler
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
-
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007
-
bonjour à tous,
quand je crée une messagedlg avec les boutons oui et non, c'est le bouton oui qui a le focus. Alors que j'ai besoin du bouton non par défaut.
D'aprés l'aide DELPHI c'est apperement possible mais je n'y parviens pas.
Alors si quelqu'un pouvais m'aider ce serait sympa.

13 réponses

Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
precision qdialogs fait partie du composant Teechart et n'est donc pas disponible sur la version 7 preso de DELPHI
Messages postés
40
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
29 janvier 2006

Est-ce que tu as essayé de mettre mbNo avant mbOk ?
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007

He oui, j'ai déja fait l'essai mais ça ne donne rien
Messages postés
99
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
26 juillet 2007
1
Salut

C'est pas possible avec MessageDlg. Pour t'en convaincre, regarde la routine function CreateMessageDialog(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons): TForm; dans l'unité Dialogs.pas. Tu peux changer ta phrase pour que le OUI soit la valeur par défaut ou recréer une function comme celle de delphi dans laquelle tu ajoutes un paramètre correspondant au bouton par défaut voulu.

Roud59
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
15
Regarde le code multilangue de MAURICIO. Il permet de modifier le caption des boutons, donc nécessairement, via ActiveControl:=BoutonAActiver, on peut changer le focus.

===========
Validez les réponses si ok...

Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007

ok, vos pistes sont pas mal ,je vais creuser un peu, mais je n'arrive toujours pas à comprendre porquoi dans l'aide de delphi, on nous parle des fonctions overload qui semble résoudre lle problème ? C peut etre réservé au versions commerciales ?
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
Salut,



Il y a effectivement un paquet de formats pour la fonction MessageDlg (définis avec la directive overload).

Celle qui t'intéresse est définie dans l'unité QDialogs et pas dans Dialogs comme les formes de base.

Donc : Uses QDialogs si tu possède cette unité et appel du type (aide de Delphi)



if MessageDlg('Bienvenue dans mon application Delphi. Quitter?',

mtConfirmation, [mbYes, mbNo], 0, mbYes) = mrYes then







Ken@vo
Code, Code, Codec !

[%3C/body ]
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
15
Je ne connais pas cette unité. D'où vient-elle ? Des composants QuickReport ?

===========
Messages postés
40
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
29 janvier 2006

Essaie ceci:
with CreateMessageDialog('Votre texte.', mtError, mbOKCancel) do
try
{ Récupèrer le focus des boutons }
TButton(FindComponent('Cancel')).TabOrder := 0;
{Changer le libellé du bouton Annuler}
TButton(FindComponent('Cancel')).Caption := 'Non ';

ShowModal;
finally
Free;
end;
Voila, vous n'avez plus qu'a l'adapter a votre code.....
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
> Grandvizir



L'unité QDialogs est dans Delphi 7 mais pas dans Delphi 4. De là a te dire quand elle est apparue ....



Ken@vo

Code, Code, Codec !

[%3C/body ]
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
>Kenavo

L'unité QDialogs est également dans DELPH6...
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007

En ce qui me concerne j'ai Delphi 7 edition personnelle et QDialogs est introuvable
Messages postés
27
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
19 décembre 2007

Bon ben c'est pas grave , je me suis refait les fonctions en m'inspirant du post de Kenavo et ça marche !
merci à tous
ps. je vais mettre mon source Dialogs2 pour si ça interresse quelqu'un