在 FMXUI 开源库,增加了 UI.Dialog 单元。此单元实现了跨平台的基础对话框组件。使用时引用 UI.Dialog 即可。如果需要自定义对话框的样式, 可以添加一个 TDialogStyleManager 组件在主窗体中。

GIT:  https://github.com/yangyxd/FMXUI

对话框效果演示图(默认样式,Windows平台):

此 Demo 已经包含在源码库中,主要代码如下:

  1. uses
  2. UI.Dialog, UI.Async;
  3.  
  4. { TFrmaeDialog }
  5.  
  6. procedure TFrmaeDialog.ButtonView1Click(Sender: TObject);
  7. begin
  8. TDialogBuilder.Create(Self)
  9. .SetMessage('我是一个消息框。')
  10. .Show;
  11. end;
  12.  
  13. procedure TFrmaeDialog.ButtonView2Click(Sender: TObject);
  14. begin
  15. TDialogBuilder.Create(Self)
  16. .SetMessage('我是一个消息框。这里显示消息内容')
  17. .SetNegativeButton('Negative',
  18. procedure (Dialog: IDialog; Which: Integer) begin
  19. Hint(Dialog.Builder.NegativeButtonText);
  20. end
  21. )
  22. .SetNeutralButton('Neutral',
  23. procedure (Dialog: IDialog; Which: Integer) begin
  24. Hint(Dialog.Builder.NeutralButtonText);
  25. end
  26. )
  27. .SetPositiveButton('Positive',
  28. procedure (Dialog: IDialog; Which: Integer) begin
  29. Hint(Dialog.Builder.PositiveButtonText);
  30. end
  31. )
  32. .Show;
  33. end;
  34.  
  35. procedure TFrmaeDialog.ButtonView3Click(Sender: TObject);
  36. begin
  37. TDialogBuilder.Create(Self)
  38. .SetTitle('我是标题文本')
  39. .SetMessage('我是一个消息框。这里显示消息内容')
  40. .SetNegativeButton('Negative',
  41. procedure (Dialog: IDialog; Which: Integer) begin
  42. Hint(Dialog.Builder.NegativeButtonText);
  43. end
  44. )
  45. .SetPositiveButton('Positive',
  46. procedure (Dialog: IDialog; Which: Integer) begin
  47. Hint(Dialog.Builder.PositiveButtonText);
  48. end
  49. )
  50. .Show;
  51. end;
  52.  
  53. procedure TFrmaeDialog.ButtonView4Click(Sender: TObject);
  54. begin
  55. TDialogBuilder.Create(Self)
  56. .SetTitle('我是标题文本')
  57. .SetItems(['列表项 - 1', '列表项 - 2', '列表项 - 3', '列表项 - 4', '列表项 - 5'],
  58. procedure (Dialog: IDialog; Which: Integer) begin
  59. Hint(Dialog.Builder.ItemArray[Which]);
  60. end
  61. )
  62. .Show;
  63. end;
  64.  
  65. procedure TFrmaeDialog.ButtonView5Click(Sender: TObject);
  66. begin
  67. TDialogBuilder.Create(Self)
  68. .SetTitle('我是标题文本')
  69. .SetSingleChoiceItems(['列表项 - 1', '列表项 - 2', '列表项 - 3', '列表项 - 4', '列表项 - 5'], 1)
  70. .SetPositiveButton('取消')
  71. .SetNegativeButton('确定',
  72. procedure (Dialog: IDialog; Which: Integer) begin
  73. Hint('选择了: ' + Dialog.Builder.ItemArray[Dialog.Builder.CheckedItem]);
  74. end
  75. )
  76. .Show;
  77. end;
  78.  
  79. procedure TFrmaeDialog.ButtonView6Click(Sender: TObject);
  80. begin
  81. TDialogBuilder.Create(Self)
  82. .SetTitle('我是标题文本')
  83. .SetMultiChoiceItems(['列表项 - 1', '列表项 - 2', '列表项 - 3', '列表项 - 4', '列表项 - 5'], [])
  84. .SetPositiveButton('取消')
  85. .SetNegativeButton('确定',
  86. procedure (Dialog: IDialog; Which: Integer) begin
  87. Hint(Format('选择了 %d 项.', [Dialog.Builder.CheckedCount]));
  88. end
  89. )
  90. .Show;
  91. end;
  92.  
  93. procedure TFrmaeDialog.ButtonView7Click(Sender: TObject);
  94. begin
  95. ShowWaitDialog('正在执行任务...', False);
  96. TAsync.Create()
  97. .SetExecute(
  98. procedure (Async: TAsync) begin
  99. Sleep(3000);
  100. end
  101. )
  102. .SetExecuteComplete(
  103. procedure (Async: TAsync) begin
  104. HideWaitDialog;
  105. end
  106. ).Start;
  107. end;
  108.  
  109. procedure TFrmaeDialog.ButtonView8Click(Sender: TObject);
  110. begin
  111. ShowWaitDialog('正在执行任务...',
  112. procedure (Dialog: IDialog) begin
  113. Hint('任务被取消');
  114. end
  115. );
  116. TAsync.Create()
  117. .SetExecute(
  118. procedure (Async: TAsync) begin
  119. Sleep(5000);
  120. end
  121. )
  122. .SetExecuteComplete(
  123. procedure (Async: TAsync) begin
  124. if not IsWaitDismiss then // 如果任务没有被中断
  125. Hint('任务执行完成.');
  126. HideWaitDialog;
  127. end
  128. ).Start;
  129. end;
  130.  
  131. procedure TFrmaeDialog.DoShow;
  132. begin
  133. inherited;
  134. tvTitle.Text := Title;
  135. end;
  136.  
  137. procedure TFrmaeDialog.SpeedButton1Click(Sender: TObject);
  138. begin
  139. Finish;
  140. end;

http://www.cnblogs.com/yangyxd/articles/5877638.html

FMXUI - UI.Dialog 示例的更多相关文章

  1. FMXUI - UI.Dialog 示例(比较漂亮)

    在 FMXUI 开源库,增加了 UI.Dialog 单元.此单元实现了跨平台的基础对话框组件.使用时引用 UI.Dialog 即可.如果需要自定义对话框的样式, 可以添加一个 TDialogStyle ...

  2. jQuery UI dialog 参数说明

    前段时间碰到个问题 jquery UI dialog弹出层 弹出多个层是 比如弹出两个层A和B  B层如果显示的数据表格太大,伸到了A层的外面,那伸到A层之外的部分就看不到了,因为B层是在A层上弹出的 ...

  3. js插件---Amaze UI dialog如何使用

    js插件---Amaze UI dialog如何使用 一.总结 一句话总结:别人给你列出来的参考手册照着用先 1.在哪里去找插件参考资料或者使用手册(一般位置找不到的时候)? github上面啊,非常 ...

  4. 解决Select2控件不能在jQuery UI Dialog中不能搜索的bug

    本文使用博客园Markdown编辑器进行编辑 1.问题呈现 项目中使用了jQuery UI的Dialog控件,一般用来处理需要提示用户输入或操作的简单页面.逻辑是修改一个广告的图片和标题. 效果截图如 ...

  5. [转]jQuery UI Dialog Modal Popup Yes No Confirm example in ASP.Net

    本文转自:http://www.aspsnippets.com/Articles/jQuery-UI-Dialog-Modal-Popup-Yes-No-Confirm-example-in-ASPN ...

  6. API分析——Jquery UI Dialog

    1.阅读API文档的一般方法? 通常地, API由三部分构成:属性.方法.事件. 属性表示参数配置,作为一个组件的微调,或者功能的开启与关闭: 方法表示组件能够发生的动作,或者组件的状态监测: 事件表 ...

  7. jQuery UI dialog 的使用

    今天用到了客户端的对话框,把 jQuery UI 中的对话框学习了一下. 准备 jQuery 环境 首先,我们创建一个按钮,点击这个按钮的时候,将会弹出一个对话框. 1 <input type= ...

  8. jQuery UI dialog 參数说明

    前段时间碰到个问题 jquery UI dialog弹出层 弹出多个层是 比方弹出两个层A和B  B层假设显示的数据表格太大,伸到了A层的外面,那伸到A层之外的部分就看不到了,由于B层是在A层上弹出的 ...

  9. Jquery - UI - Dialog(转)

    jQuery UI Dialog常用的参数有: 1.autoOpen:默认true,即dialog方法创建就显示对话框 2.buttons:默认无,用于设置显示的按钮,可以是JSON和Array形式: ...

随机推荐

  1. Nginx 之二: nginx.conf 配置及基本优化

    一:常用功能优化: 1:网络连接的优化: 只能在events模块设置,用于防止在同一一个时刻只有一个请求的情况下,出现多个睡眠进程会被唤醒但只能有一个进程可获得请求的尴尬,如果不优化,在多进程的ngi ...

  2. 2013 南京邀请赛 C count the carries

    /** 大意: 给定区间(a,b), 将其转化为二进制 计算从a+(a+1)+(a+2)....+(a+b-1),一共有多少次进位 思路: 将(a,b)区间内的数,转化为二进制后,看其每一位一共有多少 ...

  3. Android Dalvik 虚拟机

    简介 Android 平台虽然是使用java语言来开发应用程序,但Android程序却不是运行在标准java虚拟机上的.谷歌专门为Android平台设计了一套虚拟机来运行Android程序.它就是Da ...

  4. python异常处理URLError,HTTPError,Wrapping,

    们在使用爬虫来抓取网页内容的时候,HTTP异常是必须要注意的一项,所以本文,我们来详细探寻一下HTTP异常处理的相关内容,通过一些具体的实例来分析一下,非常的简单,但是却很实用.   先来说一说HTT ...

  5. Android最新源码4.3下载-教程 2013-11

    Android最新源码4.3下载-教程 有的下载会出现问题: 需要 修改manifest.xml中的fetch: "git://Android.git.linaro.org/"  ...

  6. Apache 2.2 到 2.4的不同

    1.权限设定方式变更 2.2使用Order Deny / Allow的方式,2.4改用Require apache2.2: Order deny,allowDeny from allapache2.4 ...

  7. Matrix Factorization, Algorithms, Applications, and Avaliable packages

    矩阵分解 来源:http://www.cvchina.info/2011/09/05/matrix-factorization-jungle/ 美帝的有心人士收集了市面上的矩阵分解的差点儿全部算法和应 ...

  8. JAVA 软件升级版本号比较

    简单版本号比较: public class CompareVersion {   public static void main(String[] args) { // TODO Auto-gener ...

  9. 树莓派deian的linux常用命令

    Linux系统,这个强大的系统,现在树莓派也要用到.给大家普及一下. 那些常用的Linux命令 linux的文件结构 /   根目录下的目录 /bin /home /dev /usr /opt /et ...

  10. IE6多出一只猪的经典bug

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...