• FMXUI


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

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

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

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

    复制代码
    uses
      UI.Dialog, UI.Async;
    
    { TFrmaeDialog }
    
    procedure TFrmaeDialog.ButtonView1Click(Sender: TObject);
    begin
      TDialogBuilder.Create(Self)
        .SetMessage('我是一个消息框。')
        .Show;
    end;
    
    procedure TFrmaeDialog.ButtonView2Click(Sender: TObject);
    begin
      TDialogBuilder.Create(Self)
        .SetMessage('我是一个消息框。这里显示消息内容')
        .SetNegativeButton('Negative',
          procedure (Dialog: IDialog; Which: Integer) begin
            Hint(Dialog.Builder.NegativeButtonText);
          end
        )
        .SetNeutralButton('Neutral',
          procedure (Dialog: IDialog; Which: Integer) begin
            Hint(Dialog.Builder.NeutralButtonText);
          end
        )
        .SetPositiveButton('Positive',
          procedure (Dialog: IDialog; Which: Integer) begin
            Hint(Dialog.Builder.PositiveButtonText);
          end
        )
        .Show;
    end;
    
    procedure TFrmaeDialog.ButtonView3Click(Sender: TObject);
    begin
      TDialogBuilder.Create(Self)
        .SetTitle('我是标题文本')
        .SetMessage('我是一个消息框。这里显示消息内容')
        .SetNegativeButton('Negative',
          procedure (Dialog: IDialog; Which: Integer) begin
            Hint(Dialog.Builder.NegativeButtonText);
          end
        )
        .SetPositiveButton('Positive',
          procedure (Dialog: IDialog; Which: Integer) begin
            Hint(Dialog.Builder.PositiveButtonText);
          end
        )
        .Show;
    end;
    
    procedure TFrmaeDialog.ButtonView4Click(Sender: TObject);
    begin
      TDialogBuilder.Create(Self)
        .SetTitle('我是标题文本')
        .SetItems(['列表项 - 1', '列表项 - 2', '列表项 - 3', '列表项 - 4', '列表项 - 5'],
          procedure (Dialog: IDialog; Which: Integer) begin
            Hint(Dialog.Builder.ItemArray[Which]);
          end
        )
        .Show;
    end;
    
    procedure TFrmaeDialog.ButtonView5Click(Sender: TObject);
    begin
      TDialogBuilder.Create(Self)
        .SetTitle('我是标题文本')
        .SetSingleChoiceItems(['列表项 - 1', '列表项 - 2', '列表项 - 3', '列表项 - 4', '列表项 - 5'], 1)
        .SetPositiveButton('取消')
        .SetNegativeButton('确定',
          procedure (Dialog: IDialog; Which: Integer) begin
            Hint('选择了: ' + Dialog.Builder.ItemArray[Dialog.Builder.CheckedItem]);
          end
        )
        .Show;
    end;
    
    procedure TFrmaeDialog.ButtonView6Click(Sender: TObject);
    begin
      TDialogBuilder.Create(Self)
        .SetTitle('我是标题文本')
        .SetMultiChoiceItems(['列表项 - 1', '列表项 - 2', '列表项 - 3', '列表项 - 4', '列表项 - 5'], [])
        .SetPositiveButton('取消')
        .SetNegativeButton('确定',
          procedure (Dialog: IDialog; Which: Integer) begin
            Hint(Format('选择了 %d 项.', [Dialog.Builder.CheckedCount]));
          end
        )
        .Show;
    end;
    
    procedure TFrmaeDialog.ButtonView7Click(Sender: TObject);
    begin
      ShowWaitDialog('正在执行任务...', False);
      TAsync.Create()
      .SetExecute(
        procedure (Async: TAsync) begin
          Sleep(3000);
        end
      )
      .SetExecuteComplete(
        procedure (Async: TAsync) begin
          HideWaitDialog;
        end
      ).Start;
    end;
    
    procedure TFrmaeDialog.ButtonView8Click(Sender: TObject);
    begin
      ShowWaitDialog('正在执行任务...',
        procedure (Dialog: IDialog) begin
          Hint('任务被取消');
        end
      );
      TAsync.Create()
      .SetExecute(
        procedure (Async: TAsync) begin
          Sleep(5000);
        end
      )
      .SetExecuteComplete(
        procedure (Async: TAsync) begin
          if not IsWaitDismiss then // 如果任务没有被中断
            Hint('任务执行完成.');
          HideWaitDialog;
        end
      ).Start;
    end;
    
    procedure TFrmaeDialog.DoShow;
    begin
      inherited;
      tvTitle.Text := Title;
    end;
    
    procedure TFrmaeDialog.SpeedButton1Click(Sender: TObject);
    begin
      Finish;
    end;
    复制代码

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

  • 相关阅读:
    5G终端测试 FOTA功能
    利尔达 UIS8910DM 模组的 发送短信TEXT格式
    利尔达 UIS8910DM 模组的 发送短信PDU格式
    altera原厂 cyclone V开发板使用记录
    【3】TensorFlow光速入门-训练及评估
    【2】TensorFlow光速入门-数据预处理(得到数据集)
    【1】TensorFlow光速入门-tensorflow开发基本流程
    【0】TensorFlow光速入门-序
    DbHelperSQL
    Git——简单的分支规范
  • 原文地址:https://www.cnblogs.com/findumars/p/7841215.html
Copyright © 2020-2023  润新知