• Demo学习: Dialogs Anonymous Callback


    DialogsDialogs Anonymous Callback

    窗体回调函数使用.

    1. 标准回调函数

    ShowMessage(const Msg: string; CallBack: TUniDialogCallBackProc = nil)

    procedure TMainForm.UniButton2Click(Sender: TObject);
    begin
      ShowMessage('Message-2', CallBack1);
    end;
    //定义回调函数
    procedure TMainForm.CallBack1(Res: Integer); begin //OK返回1, 取消返回2; UniMemo1.Lines.Add('Result-1: '+IntToStr(Res)); end;

    2. MessageDlg(const Msg:string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; CallBack:TUniDialogCallBackProc)

    procedure TMainForm.UniButton7Click(Sender: TObject);
    begin
      MessageDlg('mbYesNo', mtConfirmation, mbYesNo, DCallBack4);
    end;
    procedure TMainForm.DCallBack4(Res: Integer);
    begin
      case Res of
        mrYes : UniMemo1.Lines.Add('DResult: YES');
        mrNo : UniMemo1.Lines.Add('DResult: NO');
        mrOK : UniMemo1.Lines.Add('DResult: OK');
        mrCancel : UniMemo1.Lines.Add('DResult: CANCEL');
      end;
    end;

    2. 匿名回调函数

    这种写法适合代码量少的,多了就比较乱,还是标准的看着习惯。

    procedure TMainForm.UniButton6Click(Sender: TObject);
    begin
      MessageDlg('Dialog3', mtConfirmation, mbYesNo,
        procedure(Res: Integer)
        begin
          case Res of
            mrYes :
              MessageDlg('Dialog4', mtConfirmation, mbYesNo,
                procedure(Res: Integer)
                begin
                  case Res of
                    mrYes : UniMemo1.Lines.Add('DResult: YES');
                    mrNo : UniMemo1.Lines.Add('DResult: NO');
                  end;
                end
              );
            mrNo : UniMemo1.Lines.Add('DResult: NO');
          end;
        end
      );
    end;

      

  • 相关阅读:
    Hadoop: No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).解决办法
    Libnfc
    生产服务GC调优实践及基本流程总结
    万年历算法
    C#中操作Oracle时的SQL语句参数的用法
    对DataGrid的初步了解
    C#中HashTable的用法
    正则表达式
    C#动态调用WebService
    Ubuntu 故障处理笔记
  • 原文地址:https://www.cnblogs.com/fengxb/p/3273312.html
Copyright © 2020-2023  润新知