uniGUI for Delphi UniSweetAlert控件详解

2023-12-16 08:40:43

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.

文章来源:https://blog.csdn.net/delphigbg/article/details/135028395
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。