uniGUI for Delphi UniSweetAlert控件详解
UniSweetAlert是UniGUI后期版本新增的一个界面友好的消息提示和输入控件,是ShowMessageN的升级版,UniSweetAlert增加了更多的可控制属性。
属性介绍
1、AlertType:提示类型,分为atError、atSuccess、atInfo、atQuestion、atWarning五种类型,主要控制提示界面顶部的图标样式;
2、AllowEscapeKey:是否允许Esc键关闭提示界面;
3、AllowOutsideClick:是否允许点击提示框外部区域关闭提示界面;
4、Animation:动画;
5、CancellButtonText:取消按钮中文内容;
6、ConfirmButtonText:确认按钮中文内容;
7、FocusCancel:焦点定位到取消按钮上;
8、Images:关联的图标控件,提示框中上数第二个图标;
9、InputType:输入类型,有ltNone、ltFile、ltMail、ltSelect、ltPassword、ltRaido等多种类型;
10、InputValue:初始显示的输入内容;
11、ReverseButtons:反向顺序摆放按钮,“确认”“取消”变为“取消”“确认”;
12、ShowCancellButton:显示取消按钮;
13、ShowCloseButton:显示提示框右上角的关闭按钮;
14、ShowConfirmButton:显示确认按钮;
15、ShowLoaderOnConfirm:显示确认前的预处理过程;
16、Title:提示信息;
???????? 创建一个新项目,按照下图添加和摆放各个控件,分别设置UniComboBox1、UniEdit1~4的FieldLabel标签属性,为UniNativImageList1添加一个小图片,让UniSweetAlert1的Images设为UniNativeImageList1,让ImageIndex设为0。三个按钮分别代表不同的应用方法,点击“一般交互提示”按钮将弹出提示框,操作“确认”和“取消”按钮都将提示操作结果;点击“判断执行结果”按钮将弹出提示框,仅操作“确定”按钮有操作结果提示,操作“取消”按钮没有操作结果提示;点击“预处理后执行”按钮将弹出提示框,操作“确定”按钮后将经过一个执行时间后再返回执行结果提示。
???
5.32.2 主要代码main.pas
unit Main;
interface
uses
? Windows, Messages, SysUtils, Variants, Classes, Graphics,
? Controls, Forms, uniGUITypes, uniGUIAbstractClasses,
? uniGUIClasses, uniGUIRegClasses, uniGUIForm, uniGUIBaseClasses, uniSweetAlert,
? uniButton, uniImageList, uniEdit, uniCheckBox, uniMultiItem, uniComboBox;
type
? TMainForm = class(TUniForm)
??? UniComboBox1: TUniComboBox;
??? UniCheckBox1: TUniCheckBox;
??? UniCheckBox2: TUniCheckBox;
??? UniEdit1: TUniEdit;
??? UniEdit2: TUniEdit;
??? UniCheckBox3: TUniCheckBox;
??? UniCheckBox4: TUniCheckBox;
??? UniEdit3: TUniEdit;
??? UniButton1: TUniButton;
??? UniButton2: TUniButton;
??? UniSweetAlert1: TUniSweetAlert;
??? UniNativeImageList1: TUniNativeImageList;
??? UniCheckBox5: TUniCheckBox;
??? UniButton3: TUniButton;
??? UniEdit4: TUniEdit;
??? procedure UniButton1Click(Sender: TObject);
??? procedure UniButton2Click(Sender: TObject);
??? procedure UniButton3Click(Sender: TObject);
??? procedure UniSweetAlert1Confirm(Sender: TObject);
??? procedure UniSweetAlert1PreConfirm(Sender: TObject; var Result: Boolean;
????? var ErrorString: string);
??? procedure UniSweetAlert1Dismiss(Sender: TObject;
????? const Reason: TDismissType);
? private
??? procedure ConfigSweetAlert(const ShowLoader: Boolean = False);//添加SweetAlert属性配置函数
??? { Private declarations }
? public
? ??{ Public declarations }
? end;
function MainForm: TMainForm;
implementation
{$R *.dfm}
uses
? uniGUIVars, MainModule, uniGUIApplication;
function MainForm: TMainForm;
begin
? Result := TMainForm(UniMainModule.GetFormInstance(TMainForm));
end;
1、UniSweetAlert属性配置
procedure TMainForm.ConfigSweetAlert(const ShowLoader: Boolean = False);
begin
? with UniSweetAlert1 do
? begin
??? AlertType := TAlertType(UniComboBox1.ItemIndex);//设置提示类型
??? AllowEscapeKey := UniCheckBox1.Checked;//是否允许按ESC
??? AllowOutsideClick := UniCheckBox2.Checked;//是否允许外部点击
??? CancelButtonText := UniEdit1.Text;//取消按钮的中文内容
??? ConfirmButtonText := UniEdit2.Text;//确认按钮的中文内容
??? ShowCancelButton := UniCheckBox3.Checked;//是否显示取消按钮
??? ShowCloseButton := UniCheckBox4.Checked;//是否显示关闭按钮
??? ShowLoaderOnConfirm := ShowLoader;//是否确认前等待
??? Title := UniEdit3.Text;//提示信息
??? if UniCheckBox5.Checked then
??? begin
????? InputType := ItText;
????? InputValue := UniEdit4.Text;
??? end
??? else
????? InputType := ItNone;
? end;
end;
2、“一般交互提示”按钮事件
procedure TMainForm.UniButton1Click(Sender: TObject);
begin
? ConfigSweetAlert;
? UniSweetAlert1.Show;//显示提示
end;
2、“判断执行结果”按钮事件
procedure TMainForm.UniButton2Click(Sender: TObject);
begin
? ConfigSweetAlert;
? if UniSweetAlert1.Execute then//根据执行结果进行提示
?? ?ShowMessageN('执行结果:成功! ' + UniSweetAlert1.InputResult);
end;
3、“预处理后执行”按钮事件
procedure TMainForm.UniButton3Click(Sender: TObject);
begin
? ConfigSweetAlert(True);
? UniSweetAlert1.Show;
end;
4、UniSweetAlert“确认”按钮事件
procedure TMainForm.UniSweetAlert1Confirm(Sender: TObject);
begin
? if UniCheckBox5.Checked then
??? begin
????? ShowMessageN('确认:你输入了 ' + UniSweetAlert1.InputResult);
??? end
? else
??? begin
????? ShowMessageN('确认');
??? end;
end;
5、UniSweetAlert“取消”按钮事件
procedure TMainForm.UniSweetAlert1Dismiss(Sender: TObject;
? const Reason: TDismissType);
begin
? case Reason of
??? dtOverlay:?? ShowMessageN('驳回原因:覆盖');
??? dtCancel: ShowMessageN('驳回原因:取消');
??? dtClose:? ShowMessageN('驳回原因:关闭');
??? dtESC:? ShowMessageN('驳回原因:按了ESC');
??? dtTimer:? ShowMessageN('驳回原因:超时');
? end;
end;
6、UniSweetAlert“预处理”按钮事件
procedure TMainForm.UniSweetAlert1PreConfirm(Sender: TObject;
? var Result: Boolean; var ErrorString: string);
begin
? Sleep(2000); // 模拟等待!
? Result := True;
? ShowMessageN('确认:你输入了 ' + UniSweetAlert1.InputResult);
end;
initialization
? RegisterAppFormClass(TMainForm);
end.
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!