怎么设置对话框弹出效果,如何把隐藏的对话框调出来

首页 > 实用技巧 > 作者:YD1662023-10-29 18:06:41

5、Panel__popup (用 Panel 模拟的不带遮罩消息框)

使用:

在界面上放置一个Panel,设置其HelpKeyword为popup

使用时,直接设置Panel的Visible即可。

Visible 为 True 时显示,为 False 时隐藏

显示时,系统不显示遮罩层,Panel左边距和left相等,顶部与top值相等。

点击空白处自动消失

优点:开发速度快,与原背景窗体的数据交互非常方便;

缺点:需要在Panel中增加标题栏等

效果:

怎么设置对话框弹出效果,如何把隐藏的对话框调出来(5)

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中的变量实现

效果:

怎么设置对话框弹出效果,如何把隐藏的对话框调出来(6)

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;

效果:

怎么设置对话框弹出效果,如何把隐藏的对话框调出来(7)

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;

效果:

怎么设置对话框弹出效果,如何把隐藏的对话框调出来(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.