前言:
当前看官们对“确认框弹出”都比较关注,大家都想要剖析一些“确认框弹出”的相关知识。那么小编同时在网络上网罗了一些有关“确认框弹出””的相关知识,希望咱们能喜欢,同学们一起来学习一下吧!在DeWeb中弹出对话框有以下几种方式:
1、dwShowMessage (消息框)
功能:弹出一个对话框,点击“OK”后继续
函数:
procedure dwShowMessage(AMsg:String;AForm:TForm);
参数如下:
(1)AMsg , 字符串型,为拟显示的内容字符串
(2)AForm, 窗体类型,一般为self
代码:
procedure TForm1.Button1Click(Sender: TObject);begin dwShowMessage('Hello!',self);end;
效果:
2、dwShowMsg (支持自定义的消息框)
功能:弹出一个对话框,点击确定按钮后继续。
是dwShowMessage的升级版,区别在于:
(1)支持自定义标题;
(2)支持自定义按钮Caption
(3)消息内容支持HTML字符
函数:
procedure dwShowMsg(AMsg,ACaption,AButtonCaption:String;AForm:TForm);
参数如下:
(1)AMsg , 字符串型,为拟显示的内容字符串,支持HTML字符
(2)ACaption,窗体标题
(3)AButtonCaption,确定按钮的标题
(4)AForm, 窗体类型,一般为self
代码:
procedure TForm1.Button2Click(Sender: TObject);begin dwShowMsg('<b>H</b>e<i>ll</i>o!','我的标题','我确定',self);end;
效果:
3、dwMessage (自动消失的带样式消息框)
功能:弹出一个对话框,3秒后自动消失,支持多种效果
函数:
procedure dwMessage(AMessage,AType:String;AForm:TForm);
参数如下:
(1)AMsg , 字符串型,为拟显示的内容字符串
(2)AType,字符串型,为拟显示弹框的类型,可以为success/info/warning/error
(3)AForm, 窗体类型,一般为self
代码:
procedure TForm1.Button3Click(Sender: TObject);begin dwMessage('Hello!','success',self);end;
效果:
4、Panel__modal (用 Panel 模拟的带遮罩消息框)
使用:
在界面上放置一个Panel,设置其HelpKeyword为modal
使用时,直接设置Panel的Visible即可。
Visible 为 True 时显示,为 False 时隐藏
显示时,系统会自动先显示一个遮罩层,Panel自动左右居中,顶部与top值相等。
优点:开发速度快,与原背景窗体的数据交互非常方便;
缺点:需要在Panel中增加关闭按钮、标题栏等
效果:
5、Panel__popup (用 Panel 模拟的不带遮罩消息框)
使用:
在界面上放置一个Panel,设置其HelpKeyword为popup
使用时,直接设置Panel的Visible即可。
Visible 为 True 时显示,为 False 时隐藏
显示时,系统不显示遮罩层,Panel左边距和left相等,顶部与top值相等。
点击空白处自动消失
优点:开发速度快,与原背景窗体的数据交互非常方便;
缺点:需要在Panel中增加标题栏等
效果:
6、Form (用 TForm 模拟的带遮罩消息框)
假定拟弹出的窗体为form2
(1)在form2的声明放置到Form1的Public中
(2)如果在Form1中弹出form2窗体,需要执行如下以下代码
procedure TForm1.Button6Click(Sender: TObject);begin if Form2 = nil then begin //创建FORM Form2 := TForm2.Create(self); //括号内必须将新窗体的Parent设置为self //设置Parent Form2.Parent := self; //必须将新窗体的Parent设置为self // DockSite := True; end; //弹出 dwShowModalPro(self,Form2);end;
优点:可以根据自己的需要定制;
缺点:使用相对麻烦;与背景窗体的数据交互相对麻烦,需要通过Form1的Public中的变量实现
效果:
7、dwMessageDialog (弹出式确认框)
函数:
procedure dwMessageDlg(AMsg,ACaption,confirmButtonCaption,cancelButtonCaption,AMethedName:String;AForm:TForm);
其中:
(1)AMsg:消息内容
(2)ACaption:消息框标题
(3)confirmButtonCaption:确定按钮标题
(4)cancelButtonCaption:取消按钮标题
(5)AMethedName:返回结果后触发Form的OnStartDock中的事件标志
(6)AForm:当前窗体,一般可以使用self
dwMessageDlg没返回值,所以不能在当前函数/过程中处理,需要等结果返回后会自动激活Form的OnStartDock函数,
所以需要在Form的OnStartDock函数中添加事件,在事件中通过以下取得前期拟触发的事件标志,对应函数中的AMethedName
dwGetProp(Self,'interactionmethod');
通过类似以下得到返回的结果,为'1'时表示为"确定",否则为"取消"
dwGetProp(Self,'interactionvalue');
弹出代码:
procedure TForm1.Button7Click(Sender: TObject);begin //弹出一个确认框 dwMessageDlg('确定要使用DeWeb吗?','我的标题','我确定','我取消','query_deweb',self);end;
用户选择后事件代码:
procedure TForm1.FormStartDock(Sender: TObject; var DragObject: TDragDockObject);var sMethod : string; sValue : string;begin sMethod := dwGetProp(Self,'interactionmethod'); sValue := dwGetProp(Self,'interactionvalue'); // if sMethod = 'query_deweb' then begin if sValue = '1' then begin Label2.Caption := '选择使用DeWeb'; end else begin Label2.Caption := '再等等看'; end; end;end;
效果:
8、dwInputQuery (弹出式输入框)
函数:
procedure dwInputQuery(AMsg,ACaption,ADefault,confirmButtonCaption,cancelButtonCaption,AMethedName:String;AForm:TForm);
其中:
(1)AMsg:消息内容
(2)ACaption:消息框标题
(3)ADefault:输入框的默认值
(4)confirmButtonCaption:确定按钮标题
(5)cancelButtonCaption:取消按钮标题
(6)AMethedName:返回结果后触发Form的OnStartDock中的事件标志
(7)AForm:当前窗体,一般可以使用self
dwInputQuery没返回值,所以不能在当前函数/过程中处理,需要等结果返回后会自动激活Form的OnStartDock函数,
所以需要在Form的OnStartDock函数中添加事件,在事件中通过以下取得前期拟触发的事件标志
dwGetProp(Self,'interactionmethod');
通过类似以下得到返回的结果,为输入的内容。
dwGetProp(Self,'interactionvalue');
弹出代码:
procedure TForm1.Button8Click(Sender: TObject);begin dwInputQuery('你使用的Delphi版本?','D Version','10.4.2','OK','cancel','query_version',self);end;
用户选择后事件代码(包含前面处理dwMessageDlg的代码):
procedure TForm1.FormStartDock(Sender: TObject; var DragObject: TDragDockObject);var sMethod : string; sValue : string;begin sMethod := dwGetProp(Self,'interactionmethod'); sValue := dwGetProp(Self,'interactionvalue'); // if sMethod = 'query_deweb' then begin if sValue = '1' then begin Label2.Caption := '选择使用DeWeb'; end else begin Label2.Caption := '再等等看'; end; end else if sMethod = 'query_version' then begin Label3.Caption := sValue; end;end;
效果:
标签: #确认框弹出