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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/218206.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络快速刷题

自用//奈奎斯特定理和香农定理计算题 参考博客:UDP协议是什么?作用是什么? 肝了,整理了8张图详解ARP原理 【网络协议详解】——FTP系统协议(学习笔记) 在OSI参考模型中&am…

RS®SMM100A 矢量信号发生器具备毫米波测试功能的中档矢量信号发生器

R&SSMM100A 矢量信号发生器 具备毫米波测试功能的中档矢量信号发生器 R&SSMM100A 矢量信号发生器在 100 kHz 至 44 GHz 的频率范围内提供优越的射频特性。这款仪器覆盖现有无线标准所使用的 6 GHz 以下的频段、新定义的最高 7.125 GHz 的 5G NR FR1 和 Wi-Fi 6E 频段以…

Nginx(四层+七层代理)+Tomcat实现负载均衡、动静分离

一、Tomcat多实例部署 具体步骤请看我之前的博客 写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/134956765?spm1001.2014.3001.9457 1.1 访问测试多实例的部署 1.2 分别在三个tomcat服务上部署jsp的动态页面 mkdir /usr/local/tomcat/webapps/test vim …

stable-diffusion-webui(AI绘画)项目实现,即遇到的问题

实现步骤: 为了使环境中的库版本不会乱,导致自己电脑原来一些项目无法运行最好使用虚拟环境 下载miniconda 在搜索中搜所miniconda找到 建立虚拟环境 conda create --name sdwebui python3.10.6 每次运行激活这个虚拟环境 conda activate sdwebui …

生产环境_Spark处理轨迹中跨越本初子午线的经度列

使用spark处理数据集,解决gis轨迹点在地图上跨本初子午线的问题,这个问题很复杂,先补充一版我写的 import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.{Row, SparkSession} import org.apache.spark.sql.func…

抖音视频解析,无水印解析下载抖音视频

抖音视频解析,你是否经常遇到这样的情况,看到一些非常精彩的抖音视频,想要保存下来,但因为下载速度慢或者视频带有水印而感到困扰?那么,这款(抖音无水印解析工具)将是你的得力助手&a…

JMeter集结点的使用场景以及如何使用?

JMeter是一个开源的负载测试工具,它被广泛用于测试应用程序、Web服务和网络协议等的性能。在JMeter中,集结点(JMeter Cluster)是一种分布式测试环境,它允许多个JMeter实例同时工作来模拟高并发负载。 使用集结点的场景…

SaaS 电商设计 (五) 私有化部署-实现 binlog 中间件适配

一、 背景 具体的中间件私有化背景在上文 SaaS 电商设计 (二) 私有化部署-缓存中间件适配 已有做相关介绍.这里具体讨论的场景是通过解析mysql binlog 来实现mysql到其他数据源的同步.具体比如:在电商的解决方案业务流中经常有 ES 的使用场景,用以解决一些复杂的查询和搜索商品…

【答案】2023年国赛信息安全管理与评估第三阶段夺旗挑战CTF(网络安全渗透)

【答案】2023年国赛信息安全管理与评估第三阶段夺旗挑战CTF(网络安全渗透) 全国职业院校技能大赛高职组信息安全管理与评估 (赛项) 评分标准 第三阶段 夺旗挑战CTF(网络安全渗透) *竞赛项目赛题* 本文…

【贝叶斯分析】计算机科学专业博士作业二

1 第一题 1.1 题目 已知变量A和B的取值只能为0或1,A⫫𝑩,且𝑝(𝐴1)0.65,𝑝(𝐵1)0.77。C的取值与A和B有关,具体关系如下图所表: ABP(C1|A,B)000.1010.99100…

正则表达式:简化模式匹配的利器

正则表达式:简化模式匹配的利器 一、正则表达式简介1.1 正则表达式介绍1.2 正则表达式使用场景 二、正则表达式语法2.1 正则表达式元字符和特性2.2 正则表达式常用匹配 三、正则表达式实战3.1 常见的正则表达式用法3.2 正则表达式的过滤用法3.3 正则表达式的代码用法…

Fiddler中AutoResponder的简单使用

AutoResponder,自动回复器,用于将 HTTP 请求重定向为指定的返回类型。 这个功能有点像是一个代理转发器,可以将某一请求的响应结果替换成指定的资源,可以是某个页面也可以是某个本地文件 1.使用 打开“Fiddler”,点击…

11.jvm第三方工具使用实践

目录 概述GCEasy官网jvm内存占用情况关键性能指标堆内存与元空间优化 MAT安装MAT相关概念说明内存泄漏与内存溢出shallow heap及retained heapoutgoing references与incoming referencesDominator Tree GCViewerArthas下载安装与启动jdk8jdk 11jdk11自定义boot jarjdk17 常用命…

聊聊Java中的常用类String

String、StringBuffer、StringBuilder 的区别 从可变性分析 String不可变。StringBuffer、StringBuilder都继承自AbstractStringBuilder ,两者的底层的数组value并没有使用private和final修饰,所以是可变的。 AbstractStringBuilder 源码如下所示 ab…

fckeditor编辑器在Chrome浏览器下编辑时多出空格解决方法

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置,前后端开发环境的配置,编辑器的配置,网络服务的配置,网络命令的应用与配置,windows常见问题的解决等。 文章目录 结尾语网络的梦想 dedecms网站后台采用fckedi…

「构」向云端 - 我与 2023 亚马逊云科技 re:Invent 大会

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 2023年亚马逊AWS re:Invent大会宣布一项Amazon Q的创新项目&#x…

nodejs+vue+微信小程序+python+PHP全国天气可视化分析系统-计算机毕业设计推荐

3.2.1前台用户功能 前台用户可分为未注册用户需求和以注册用户需求。 未注册用户的功能如下: 注册账号:用户填写个人信息,并验证手机号码。 浏览天气资讯:用户可以浏览天气资讯信息详情。 已注册用户的功能如下: 登录&…

Ajax详解

目录 服务器与Ajax 1.初识Ajax Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 2.Ajax可以做什么? 3.Ajax基础知识铺垫 4.前端相关的技术点: 5.客户端与服务器 6.客户端 浏览器、app、应用软件 7.服务器…

图论——二分图

图论——二分图 二分图通俗解释 有一个图,将顶点分成两类,边只存在不同类顶点之间,同类顶点之间设有边。称图 G 为二部图,或称二分图,也称欧图。 性质 二分图不含有奇数环图中没有奇数环,一定可以转换为二…

SpringBoot中日志的使用log4j2

SpringBoot中日志的使用log4j2 1、log4j2介绍 Apache Log4j2 是对 Log4j 的升级,它比其前身 Log4j 1.x 提供了重大改进,并提供了 Logback 中可用的许多改 进,同时修复了 Logback 架构中的一些问题,主要有: 异常处理…