(中行雷威2019.12.5)
(同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943、299497712,860634510,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群。)
【阅读倡议】
1、有问题请留言;
2、没问题请点赞;
3、看连载请加群;
4、下源码请加群;
【开发工具】
1、C++Builder and Delphi 10.3.3
2、FMSoft_uniGUI_Complete_Professional_1.70.0.1514(正版)
本人主笔的国内第一本uniGUI教学案例代码已诞生,分为cbuilder和delphi两个版本,买代码送手册,需要的朋友可以加入我的QQ技术交流群484979943、299497712,860634510给我(群主)留言。资料简介:
https://www.meipian.cn/20b86ayo?share_from=others&user_id=64168117&uuid=a8a75af8c0cc31e6a21b8a79a2b07398&share_depth=1&first_share_uid=64168117&utm_medium=meipian_android&share_user_mpuuid=94b70e99e8b6986c71b270a9883befb2
5.32如何使用UniSweetAlert控件
UniSweetAlert是UniGUI后期版本新增的一个界面友好的消息提示和输入控件,是ShowMessageN的升级版,UniSweetAlert增加了更多的可控制属性。
5.32.1 属性介绍
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 主要代码
1、Main.h
class TMainForm : public TUniForm
{
__published: // IDE-managed Components
…
private: // User declarations
void __fastcall ConfigSweetAlert(bool ShowLoader);
public: // User declarations
__fastcall TMainForm(TComponent* Owner);
};
//---------------------------------------------------------------------------
TMainForm *MainForm(void);
//---------------------------------------------------------------------------
#endif
- Main.cpp
1)属性配置函数
void __fastcall TMainForm::ConfigSweetAlert(bool ShowLoader)
{
UniSweetAlert1->AlertType=(TAlertType)(UniComboBox1->ItemIndex);//设置提示类型
UniSweetAlert1->AllowEscapeKey=UniCheckBox1->Checked;//是否允许按ESC
UniSweetAlert1->AllowOutsideClick=UniCheckBox2->Checked;//是否允许外部点击
UniSweetAlert1->CancelButtonText=UniEdit1->Text;//取消按钮的中文内容
UniSweetAlert1->ConfirmButtonText=UniEdit2->Text;//确认按钮的中文内容
UniSweetAlert1->ShowCancelButton=UniCheckBox3->Checked;//是否显示取消按钮
UniSweetAlert1->ShowCloseButton=UniCheckBox4->Checked;//是否显示关闭按钮
UniSweetAlert1->ShowLoaderOnConfirm=ShowLoader;//是否确认前等待
UniSweetAlert1->Title=UniEdit3->Text;//提示信息
if(UniCheckBox5->Checked)
{
UniSweetAlert1->InputType=ItText;
UniSweetAlert1->InputValue=UniEdit4->Text;
}
else
{
UniSweetAlert1->InputType=ItNone;
}
}
2)“一般交互提示”按钮事件
void __fastcall TMainForm::UniBitBtn1Click(TObject *Sender)
{
ConfigSweetAlert(false);
UniSweetAlert1->Show();//显示提示
}
3)“判断执行结果”按钮事件
void __fastcall TMainForm::UniBitBtn2Click(TObject *Sender)
{
ConfigSweetAlert(false);
if (UniSweetAlert1->Execute())//根据执行结果进行提示
{
ShowMessageN("执行结果:成功! '"+ UniSweetAlert1->InputResult);
}
}
4)“预处理后执行”按钮事件
void __fastcall TMainForm::UniBitBtn3Click(TObject *Sender)
{
ConfigSweetAlert(True);
UniSweetAlert1->Show();
}
5)UniSweetAlert“确认”按钮事件
void __fastcall TMainForm::UniSweetAlert1Confirm(TObject *Sender)
{
if(UniCheckBox5->Checked)
{
ShowMessageN("确认:你输入了 " + UniSweetAlert1->InputResult);
}
else
{
ShowMessageN("确认");
}
}
6)UniSweetAlert“取消”按钮事件
void __fastcall TMainForm::UniSweetAlert1Dismiss(TObject *Sender, const TDismissType Reason)
{
switch (Reason)
{
case dtOverlay:
ShowMessageN("驳回原因:覆盖");
break;
case dtCancel:
ShowMessageN("驳回原因:取消");
break;
case dtClose:
ShowMessageN("驳回原因:关闭");
break;
case dtESC:
ShowMessageN("驳回原因:按了ESC");
break;
case dtTimer:
ShowMessageN("驳回原因:超时");
break;
}
}
7)UniSweetAlert“预处理”按钮事件
void __fastcall TMainForm::UniSweetAlert1PreConfirm(TObject *Sender, bool &Result,
UnicodeString &ErrorString)
{
Sleep(2000); // 模拟等待!
Result = True;
ShowMessageN("确认:你输入了 " + UniSweetAlert1->InputResult);
}