Delphi 7 自定义消息框MessageMyDlg

来源:互联网 发布:淘宝宝贝销售属性出错 编辑:程序博客网 时间:2024/06/17 15:39

      在之前的文章《深入了解Delphi 7中的四种消息框》了解到MessageDlg消息框不够强大,而Application.MessageBox、MessageBox实质都是Windows API函数MessageBox,无法根据自己需要所修改。于是,从MessageDlg入手,定制自己所需要的消息框。有时候我们需要在消息框上弹出的按钮不是“确定”、“是”、“否”等等,而需要“继续”、“退出”等按钮文本;有时候我们不需要消息框上还出现了标题栏的关闭按钮,给用户逃避选择的机会,于是去掉标题栏关闭按钮也是根据实际可能需要的。

自定义消息框MessageMyDlg函数原型:

{------------------------------------------------------------------------------- 
  过程名:    MessageMyDlg 
  功能:      自定义的消息框 
  参数:      Msg: string;                  消息内容 
               MsgTitle: string;             消息标题 
               DlgType: TMsgDlgType;         消息显示图标 
               Buttons: TMyMsgDlgButtons;    消息按钮集合 
               ShowClose: Boolean            消息框标题栏关闭按钮的显示 
  返回值:    Integer 
-------------------------------------------------------------------------------} 
function MessageMyDlg(const Msg, MsgTitle: string; DlgType: TMsgDlgType; Buttons: TMyMsgDlgButtons; ShowClose: Boolean): Integer; 


自定义消息框源码:(展开即可显示

使用示例:

unit Unit1; 
 
interface 
 
uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, XPMan; 
 
type 
  TForm1 = class(TForm) 
    btn1: TButton; 
    xpmnfst1: TXPManifest; 
    procedure btn1Click(Sender: TObject); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end
 
var 
  Form1: TForm1; 
 
implementation 
 
uses MyMessagebox; 
 
{$R *.dfm} 
 
procedure TForm1.btn1Click(Sender: TObject); 
begin 
  MessageDlg('这是MessageDlg弹出消息框',mtError,mbYesNoCancel,0);     //全英文 
  MessageMyDlg('这是MessageMyDlg弹出消息框','自定义标题',mtError,mcYesNoCancel,False); //全中文 
 
  case MessageMyDlg('您的操作还未完成?' + #13#13 + '请点击“继续”按钮继续完成操作,如果您想终止操作,' + #13 + '请点击“退出”按钮。''提示', mtInformation, [mcContinute, mcExit]of 
    mrContinute: ShowMessage('按了继续按钮'); 
    mrExit: ShowMessage('按了退出按钮'); 
  else ShowMessage('按了标题栏的关闭按钮'); 
  end
end
 
end
 

结果如下图所示:

原创粉丝点击