Messagedlg personnalisé

Soyez le premier à donner votre avis sur cette source.

Vue 9 342 fois - Téléchargée 1 229 fois

Description

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 / Exemple :


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.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Bacterius
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
6 -
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 !

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.