begin process at 2010 02 10 00:00:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > MESSAGEDLG PERSONNALISÉ

MESSAGEDLG PERSONNALISÉ


 Description

Cliquez pour voir la capture en taille normale
Bonjour !

Le présent exemple permet de connaître la procédure à suivre pour avoir un message dialogue personnalisé. Pour bien éclairer, lorsqu’on veut changer un message de confirmation avec deux boutons [Oui, Non] par [Espèce, Chèque]. Dans ce cas on doit chercher les boutons puis de changer leurs captions…

Le travail à la main est subdivisé en quatre parties ;

* La 1ère montre comment modifier un seul bouton ;
* La 2ème montre comment modifier deux boutons ;
* La 3ème montre comment modifier trois boutons ;
* Et la 4ème est un exemple permettant de montrer comment créer un bouton dynamique puis de l’afficher dans notre message.


A la fin, j’espère que cet exemple vous sera utile dans vos travaux et vos recherches.

Bonne chance et plein de succès à tout le monde.

N.B.:.
Pour ceux qui sont intéressés par un gestionnaire de stock et de facturation une version de démonstration est disponible sur le lien suivant :
http://www.zshare.net/download/534788950f1849b1/

Bonne chance à tous ...

Source

  • unit AFirstPage;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, StdCtrls;
  • type
  • TForm1 = class(TForm)
  • GB1: TGroupBox;
  • EButton1: TEdit;
  • BButton1: TButton;
  • LButton1: TLabel;
  • EMessage1: TEdit;
  • LMessage1: TLabel;
  • LTitre1: TLabel;
  • ETitre1: TEdit;
  • GB2: TGroupBox;
  • LButtonYES2: TLabel;
  • LMessage2: TLabel;
  • LTitre2: TLabel;
  • EButtonYES2: TEdit;
  • BButton2: TButton;
  • EMessage2: TEdit;
  • ETitre2: TEdit;
  • EButtonNO2: TEdit;
  • LButtonNo2: TLabel;
  • GB3: TGroupBox;
  • LButtonYES3: TLabel;
  • LMessage3: TLabel;
  • LTitre3: TLabel;
  • LButtonNo3: TLabel;
  • EbuttonYES3: TEdit;
  • BButton3: TButton;
  • EMessage3: TEdit;
  • ETitre3: TEdit;
  • EbuttonNo3: TEdit;
  • LButtonCancel3: TLabel;
  • EButtonCancel3: TEdit;
  • GB4: TGroupBox;
  • BButton4: TButton;
  • procedure BButton1Click(Sender: TObject);
  • procedure BButton2Click(Sender: TObject);
  • procedure BButton3Click(Sender: TObject);
  • procedure BButton4Click(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • Form1: TForm1;
  • implementation
  • {$R *.dfm}
  • procedure TForm1.BButton1Click(Sender: TObject);
  • var
  • MsgDialogOk: TForm; // Identifier la variable MsgDialogOk
  • begin
  • { Créer le message avec un seul bouton oui
  • Vous avez droit de modifier l'image de message soit :
  • En modifiant le type de message; mtError, mtConfirmation,...
  • par l'ajoute d'une TimageList et d'ajouter ce code avant ShowModal}
  • // TImage(FindComponent('Image')).Transparent := True;
  • // ImageList1.GetBitmap(0, TImage(Findcomponent('Image')).Picture.Bitmap);
  • MsgDialogOk := CreateMessageDialog(EMessage1.Text, mtWarning,[mbYES]);
  • with MsgDialogOk do
  • try
  • // Changer le titre de Message
  • Caption := ETitre1.Text;
  • // Modifier le text de boutton oui
  • TButton(FindComponent('Yes')).Caption := EButton1.Text;
  • // Modifier l'apparence de message avec l'annimation
  • AnimateWindow(Handle, 500, AW_CENTER);
  • // Définir la position de message
  • Position := poScreenCenter;
  • // Afficher le message
  • ShowModal;
  • finally
  • // Libérer la mémoire
  • Free;
  • end;
  • end;
  • procedure TForm1.BButton2Click(Sender: TObject);
  • var
  • MsgDialogYESNO: TForm; // Identifier la variable MsgDialogOk
  • begin
  • { Créer le message avec deux boutons oui et non
  • Vous avez droit de modifier l'image de message soit :
  • mtError, mtConfirmation,...
  • par l'ajoute d'une TimageList et d'ajouter ce code avant ShowModal}
  • // TImage(FindComponent('Image')).Transparent := True;
  • // ImageList1.GetBitmap(0, TImage(Findcomponent('Image')).Picture.Bitmap);
  • MsgDialogYESNO := CreateMessageDialog(EMessage2.Text, mtWarning,[mbYes, mbNo]);
  • with MsgDialogYESNO do
  • try
  • // changer le titre de Message
  • Caption := ETitre2.Text;
  • // Modifier le text de boutton oui
  • TButton(FindComponent('Yes')).Caption := EButtonYES2.Text;
  • // Modifier le text de boutton non
  • TButton(FindComponent('No')).Caption := EButtonNO2.Text;
  • // Modifier l'apparence de message avec l'annimation pour + d'info vésitez http://delphipage.free.fr/astuces/animatewindow.html
  • AnimateWindow(Handle, 500, AW_CENTER);
  • // Définir la position de message
  • Position := poScreenCenter;
  • // Afficher le message
  • ShowModal;
  • finally
  • // Libérer la mémoire
  • Free;
  • end;
  • end;
  • procedure TForm1.BButton3Click(Sender: TObject);
  • var
  • MsgDialogYESNOCANCEL: TForm; // Identifier la variable MsgDialogOk
  • begin
  • { Créer le message avec trois boutons oui, non et annuler
  • Vous avez droit de modifier l'image de message soit :
  • mtError, mtConfirmation,...
  • par l'ajoute d'une TimageList et d'ajouter ce code avant ShowModal}
  • // TImage(FindComponent('Image')).Transparent := True;
  • // ImageList1.GetBitmap(0, TImage(Findcomponent('Image')).Picture.Bitmap);
  • MsgDialogYESNOCANCEL := CreateMessageDialog(EMessage3.Text, mtWarning,[mbYes, mbNo,mbCancel]);
  • with MsgDialogYESNOCANCEL do
  • try
  • // changer le titre de Message
  • Caption := ETitre3.Text;
  • // Modifier le text de boutton oui
  • TButton(FindComponent('Yes')).Caption := EButtonYES3.Text;
  • // Modifier le text de boutton non
  • TButton(FindComponent('No')).Caption := EButtonNO3.Text;
  • // Modifier le text de boutton annuler
  • TButton(FindComponent('Cancel')).Caption := EButtonNO3.Text;
  • // Modifier l'apparence de message avec l'annimation pour + d'info vésitez http://delphipage.free.fr/astuces/animatewindow.html
  • AnimateWindow(Handle, 500, AW_CENTER);
  • // Définir la position de message
  • Position := poScreenCenter;
  • // Afficher le message
  • ShowModal;
  • finally
  • // Libérer la mémoire
  • Free;
  • end;
  • end;
  • procedure TForm1.BButton4Click(Sender: TObject);
  • var
  • MsgDialogOk: TForm; // Identifier la variable MsgDialogOk
  • MsgButton:TButton; // Identifier la variable MsgDialogOk
  • begin
  • //Créer le button Msgbutton
  • MsgButton:=TButton.Create(Nil);
  • MsgButton.Caption:='Terminer';
  • // Créer le message avec Qutre bouttons Yah Lala Casse toi et terminer
  • MsgDialogOk := CreateMessageDialog('Votre Message', mtWarning,mbYESNOCancel);
  • with MsgDialogOk do
  • try
  • // changer le titre de Message
  • Caption := '';
  • // Modifier le text de boutton oui
  • TButton(FindComponent('Yes')).Caption := 'yah';
  • // Modifier le text de boutton non
  • TButton(FindComponent('No')).Caption := 'Lala';
  • // Modifier le text de boutton oui
  • TButton(FindComponent('Cancel')).Caption := 'Casse toi';
  • // Afficher le boutton qu'on a crée dans notre message
  • MsgButton.Parent:= MsgDialogOk;
  • MsgButton.Left:=215;
  • // Pour avoir les même dimentions avec les autres boutons
  • MsgButton.Height:=TButton(FindComponent('Yes')).Height;
  • MsgButton.Width:=TButton(FindComponent('Yes')).Width;
  • MsgButton.Top:=TButton(FindComponent('Yes')).Top;
  • // Modifier l'apparence de message avec l'annimation
  • AnimateWindow(Handle, 500, AW_CENTER);
  • // Définir la position de message
  • Position := poScreenCenter;
  • // Afficher le message
  • Width := 300;
  • ShowModal;
  • finally
  • // Libérer la mémoire
  • Free;
  • end;
  • end;
  • end.
unit AFirstPage;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    GB1: TGroupBox;
    EButton1: TEdit;
    BButton1: TButton;
    LButton1: TLabel;
    EMessage1: TEdit;
    LMessage1: TLabel;
    LTitre1: TLabel;
    ETitre1: TEdit;
    GB2: TGroupBox;
    LButtonYES2: TLabel;
    LMessage2: TLabel;
    LTitre2: TLabel;
    EButtonYES2: TEdit;
    BButton2: TButton;
    EMessage2: TEdit;
    ETitre2: TEdit;
    EButtonNO2: TEdit;
    LButtonNo2: TLabel;
    GB3: TGroupBox;
    LButtonYES3: TLabel;
    LMessage3: TLabel;
    LTitre3: TLabel;
    LButtonNo3: TLabel;
    EbuttonYES3: TEdit;
    BButton3: TButton;
    EMessage3: TEdit;
    ETitre3: TEdit;
    EbuttonNo3: TEdit;
    LButtonCancel3: TLabel;
    EButtonCancel3: TEdit;
    GB4: TGroupBox;
    BButton4: TButton;
    procedure BButton1Click(Sender: TObject);
    procedure BButton2Click(Sender: TObject);
    procedure BButton3Click(Sender: TObject);
    procedure BButton4Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BButton1Click(Sender: TObject);
var
 MsgDialogOk: TForm; // Identifier la variable MsgDialogOk
begin
{ Créer le message avec un seul bouton oui
 Vous avez droit de modifier l'image de message soit :
 En modifiant le type de message; mtError, mtConfirmation,...
 par l'ajoute d'une TimageList et d'ajouter ce code avant ShowModal}
//      TImage(FindComponent('Image')).Transparent := True;
//      ImageList1.GetBitmap(0, TImage(Findcomponent('Image')).Picture.Bitmap);

 MsgDialogOk := CreateMessageDialog(EMessage1.Text, mtWarning,[mbYES]);
 with MsgDialogOk do
 try
 // Changer le titre de Message
      Caption := ETitre1.Text;
 // Modifier le text de boutton oui
      TButton(FindComponent('Yes')).Caption := EButton1.Text;
 // Modifier l'apparence de message avec l'annimation
      AnimateWindow(Handle, 500, AW_CENTER);
 // Définir la position de message
      Position := poScreenCenter;
 // Afficher le message
      ShowModal;
 finally
 // Libérer la mémoire
  Free;
 end;

end;

procedure TForm1.BButton2Click(Sender: TObject);
var
 MsgDialogYESNO: TForm; // Identifier la variable MsgDialogOk
begin
{ Créer le message avec deux boutons oui et non
 Vous avez droit de modifier l'image de message soit :
 mtError, mtConfirmation,...
 par l'ajoute d'une TimageList et d'ajouter ce code avant ShowModal}
//      TImage(FindComponent('Image')).Transparent := True;
//      ImageList1.GetBitmap(0, TImage(Findcomponent('Image')).Picture.Bitmap);

 MsgDialogYESNO := CreateMessageDialog(EMessage2.Text, mtWarning,[mbYes, mbNo]);
 with MsgDialogYESNO do
 try
 // changer le titre de Message
      Caption := ETitre2.Text;
 // Modifier le text de boutton oui
      TButton(FindComponent('Yes')).Caption := EButtonYES2.Text;
 // Modifier le text de boutton non
      TButton(FindComponent('No')).Caption := EButtonNO2.Text;
 // Modifier l'apparence de message avec l'annimation pour + d'info vésitez http://delphipage.free.fr/astuces/animatewindow.html
      AnimateWindow(Handle, 500, AW_CENTER);
 // Définir la position de message
      Position := poScreenCenter;
 // Afficher le message
      ShowModal;
 finally
 // Libérer la mémoire
  Free;
 end;

 end;

procedure TForm1.BButton3Click(Sender: TObject);
var
 MsgDialogYESNOCANCEL: TForm; // Identifier la variable MsgDialogOk
begin
{ Créer le message avec trois boutons oui, non et annuler
 Vous avez droit de modifier l'image de message soit :
 mtError, mtConfirmation,...
 par l'ajoute d'une TimageList et d'ajouter ce code avant ShowModal}
//      TImage(FindComponent('Image')).Transparent := True;
//      ImageList1.GetBitmap(0, TImage(Findcomponent('Image')).Picture.Bitmap);

 MsgDialogYESNOCANCEL := CreateMessageDialog(EMessage3.Text, mtWarning,[mbYes, mbNo,mbCancel]);
 with MsgDialogYESNOCANCEL do
 try
 // changer le titre de Message
      Caption := ETitre3.Text;
 // Modifier le text de boutton oui
      TButton(FindComponent('Yes')).Caption := EButtonYES3.Text;
 // Modifier le text de boutton non
      TButton(FindComponent('No')).Caption := EButtonNO3.Text;
 // Modifier le text de boutton annuler
      TButton(FindComponent('Cancel')).Caption := EButtonNO3.Text;
 // Modifier l'apparence de message avec l'annimation pour + d'info vésitez http://delphipage.free.fr/astuces/animatewindow.html
      AnimateWindow(Handle, 500, AW_CENTER);
 // Définir la position de message
      Position := poScreenCenter;
 // Afficher le message
      ShowModal;
 finally
 // Libérer la mémoire
  Free;
 end;

end;

procedure TForm1.BButton4Click(Sender: TObject);
var
 MsgDialogOk: TForm; // Identifier la variable MsgDialogOk
 MsgButton:TButton;  // Identifier la variable MsgDialogOk
begin
//Créer le button Msgbutton
 MsgButton:=TButton.Create(Nil);
 MsgButton.Caption:='Terminer';
// Créer le message avec Qutre bouttons Yah Lala Casse toi et terminer
 MsgDialogOk := CreateMessageDialog('Votre Message', mtWarning,mbYESNOCancel);
 with MsgDialogOk do
 try
 // changer le titre de Message
      Caption := '';
 // Modifier le text de boutton oui
      TButton(FindComponent('Yes')).Caption := 'yah';
 // Modifier le text de boutton non
      TButton(FindComponent('No')).Caption := 'Lala';
 // Modifier le text de boutton oui
      TButton(FindComponent('Cancel')).Caption := 'Casse toi';
 // Afficher le boutton qu'on a crée dans notre message
 MsgButton.Parent:= MsgDialogOk;
 MsgButton.Left:=215;
 //  Pour avoir les même dimentions avec les autres boutons
 MsgButton.Height:=TButton(FindComponent('Yes')).Height;
 MsgButton.Width:=TButton(FindComponent('Yes')).Width;
 MsgButton.Top:=TButton(FindComponent('Yes')).Top;
 // Modifier l'apparence de message avec l'annimation
      AnimateWindow(Handle, 500, AW_CENTER);
 // Définir la position de message
      Position := poScreenCenter;
 // Afficher le message
      Width := 300;
      ShowModal;
 finally
 // Libérer la mémoire
  Free;
 end;

end;

end.

 Conclusion

Toute intervention, question, critique dans le sens d’améliorer le travail sont bienvenus.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture IMAGE DANS UN TDBGRID
Source avec Zip Source avec une capture HINT PAR CELLULE DANS UN TDBGRID
Source avec Zip Source avec une capture DEVELOPERBIBLIO
Source avec Zip Source avec une capture CYBERCOMPTEUR
Source avec Zip Source avec une capture GBIBLIO GESTION COMPLÈTE DE BIBLIOTHÈQUES

 Sources de la même categorie

Source avec Zip Source avec une capture UTILISER UNE DLL INCLUSE EN RESSOURCES par Bacterius
Source avec Zip Source avec une capture IMAGE DANS UN TDBGRID par HAFTARIFOUAD
Source avec Zip Source avec une capture [ASTUCE] COMMENT VOIR UN ITEM, D'UNE LISTBOX, TRONQUÉ DANS U... par cirec
Source avec Zip Source avec une capture COMMENT DESSINER SUR UN TCANVAS LE TEXTE D'UNE FORMULE CHIMI... par pseudo3
Source avec Zip Source avec une capture COMPRENDRE UN PEU PLUS LES TABLEAUX EN RXRICHEDIT par ODLCITEINFO

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture POPUP ALERTE STYLE MSN AVAST par strobinateur
Source avec Zip Source avec une capture JETTER LES MESSAGES DANS "MESSAGE QUEUE" APRÈS UN LONG CODE par MAURICIO
DÉFILEMENT HORIZONTAL OU VERTICAL par cavalier2400
Source avec Zip Source avec une capture MESSAGEDLG AVEC CHOIX DE LA LANGUE par cirec
Source avec Zip Source avec une capture MESSAGEDLG AVEC UNE CHECKBOX ET BOUTONS PERSO ET ICÔNE PERSO par cirec

Commentaires et avis

Commentaire de cirec le 14/03/2009 11:30:27 administrateur CS

Salut,
désolé mais ce code n'apporte rien de nouveau ... il n'est pas réutilisable directement et ne semble pas être complet.

il existe déjà ça sur DelphiFr et qui est directement utilisable:
http://www.delphifr.com/code.aspx?ID=34243
tu as du passé à coté de ce code et il existe même un source qui fait exactement la même chose que le tien !

Commentaire de Bacterius le 14/03/2009 12:10:57

Ouais bon, c'est vrai que ce n'est pas vraiment utilisable. Tu aurais dû faire une fonction qui crée la boîte de dialogue et qui l'affiche, à la manière du source que Cirec vient de te passer.
Là on est obligé de recopier le code à chaque fois quand on veut faire sa boîte (même si je n'ai jamais utilisé de boîte de dialogue personnalisée, MessageDlg m'a toujours amplement suffi).

Cordialement, Bacterius !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Mettre un message sur plusieurs lignes dans un messagedlg ? [ par Technoman ] Comment fait-on pour passer à la ligne dans un messagedlg ?? Merci. Problem dans messagedlg . ya pas de sons de message. [ par bazbazus ] salut a tous quesstion débutant alors j'ai un Problem dans messagedlg . je veut déclenche le sons correspond au type de message Merci a tous Probleme installation Delphi 7 Seconde edition [ par kamikaze103 ] Bonjour , Voila je poste sur  votre forum en esperant trouver une réponse a mon problème que je n'arrive pas a résoudre  , je vous explique .J'ai inst message d' erreur [ par gali15 ] bonjour j'ai un petit problem avec mon lecteur j'ai un message d'erreur (runtime error 217 AT O14C77A2) il me fait ca avant de bien fonctionner comme Comment afficher la bonne partie texte d'un mail ayant plusieurs partie [ par vieuxpere ] Bonjour, j'ai une appli qui va rechercher les mails sur un serveur web et les affiche dans un WebBrowser sous forme de fichier HTML. Jusque là, je n'a Message erreur suite à tentative de mise à jour des composants Indy [ par vieuxpere ] Bonjour, Je souhaite mettre à jour mon Delphi7 vers la version 10 d'Indy pour ce faire je suis cette procedure : (http://translate.google.com/transla [BAR]Installation imprimante -> Message d'erreur : "division par 0 en virgule flottante " [ par fpiet ] Je suis sous vista et lors de l'ajout d'une imprimante Samsung SCX4200 avec le CD d'origine l'installation semble s'être bien passé , mais à l'ouvertu Enregistrement du projet [ par youhibadelphi ] Salut tlm J’ai changé plusieurs fois l'alias de mon projet après chaque message d'erreur, pourquoi ce message d'erreur chaque fois, est ce qu'il a une


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales