zoukankan      html  css  js  c++  java
  • ShowModal在FireMonkey移动应用程序对话框

    This is the only code that changes between the first and second code snippets:
     dlg.ShowModal(procedure(ModalResult: TModalResult)
        begin
          if ModalResult = mrOK then
          // if OK was pressed and an item is selected, pick it
          if dlg.ListBox1.ItemIndex >= 0 then
            edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
          dlg.DisposeOf;
        end);
    复制代码
     dlg.ShowModal(procedure(ModalResult: TModalResult)
        begin
          if ModalResult = mrOK then
          // if OK was pressed and an item is selected, pick it
          if dlg.ListBox1.ItemIndex >= 0 then
            edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
          dlg.DisposeOf;
        end);
    复制代码

    第一个代码片段:典型的代码调用的ShowModal

    procedure THeaderFooterForm.btnPickClick(Sender: TObject);
    var
      dlg: TForm1;
    begin
      dlg := TForm1.Create(nil);
      try
        // select current value, if avaialble in the list
        dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
     
        if dlg.ShowModal = mrOK then
          // if OK was pressed and an item is selected, pick it
          if dlg.ListBox1.ItemIndex >= 0 then
            edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
      finally
        dlg.Free;
      end;
     
    end;
    复制代码
    procedure THeaderFooterForm.btnPickClick(Sender: TObject);
    var
      dlg: TForm1;
    begin
      dlg := TForm1.Create(nil);
      try
        // select current value, if avaialble in the list
        dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
     
        if dlg.ShowModal = mrOK then
          // if OK was pressed and an item is selected, pick it
          if dlg.ListBox1.ItemIndex >= 0 then
            edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
      finally
        dlg.Free;
      end;
     
    end;
    复制代码

    伪代码典型的ShowModal代码片段解读

    这里是一个描述每个此过程的一部分:

    声明局部变量
    dlg: TForm1;
    创建表格的形式和初始化成员
    dlg := TForm1.Create(nil);
            dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
    显示的形式模态
    if dlg.ShowModal = mrOK then
    检查用户的结果和处理数据
    if dlg.ListBox1.ItemIndex >= 0 then
          edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
     释放表单 dlg.Free;
    复制代码
    声明局部变量
    dlg: TForm1;
    创建表格的形式和初始化成员
    dlg := TForm1.Create(nil);
            dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
    显示的形式模态
    if dlg.ShowModal = mrOK then
    检查用户的结果和处理数据
    if dlg.ListBox1.ItemIndex >= 0 then
          edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
     释放表单 dlg.Free;
    复制代码

    第二个代码片段:作为一个匿名的方式在所有平台上调用的ShowModal

    随着移动平台,你应该改变这种代码,悦目,让所有支持的目标平台上工作的ShowModal

    procedure THeaderFooterForm.btnPickClick(Sender: TObject);
    var
      dlg: TForm1;
    begin
      dlg := TForm1.Create(nil);
      // select current value, if available in the list
      dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
     
      dlg.ShowModal(procedure(ModalResult: TModalResult)
        begin
          if ModalResult = mrOK then
          // if OK was pressed and an item is selected, pick it
          if dlg.ListBox1.ItemIndex >= 0 then
            edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
          dlg.DisposeOf;
        end);
     
    end;
    复制代码
    procedure THeaderFooterForm.btnPickClick(Sender: TObject);
    var
      dlg: TForm1;
    begin
      dlg := TForm1.Create(nil);
      // select current value, if available in the list
      dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
     
      dlg.ShowModal(procedure(ModalResult: TModalResult)
        begin
          if ModalResult = mrOK then
          // if OK was pressed and an item is selected, pick it
          if dlg.ListBox1.ItemIndex >= 0 then
            edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
          dlg.DisposeOf;
        end);
     
    end;
    复制代码

    匿名方法的ShowModal代码片段的伪代码解读

    这里是一个描述发生了什么(做同样的事情,第一个代码段)在第二个代码片段:

    复制代码
    Declare local variables
        dlg: TForm1;
    
    Create form and initialize member in the form
        dlg := TForm1.Create(nil);
            dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
    
    Show the form modal
          dlg.ShowModal(procedure(ModalResult: TModalResult)
    
    Check the user's result and process the data
        if ModalResult = mrOK then
          if dlg.ListBox1.ItemIndex >= 0 then
            edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
    
    Free the form
              dlg.DisposeOf;
    复制代码
    Declare local variables
        dlg: TForm1;
    
    Create form and initialize member in the form
        dlg := TForm1.Create(nil);
            dlg.ListBox1.ItemIndex := dlg.ListBox1.Items.IndexOf(edit1.Text);
    
    Show the form modal
          dlg.ShowModal(procedure(ModalResult: TModalResult)
    
    Check the user's result and process the data
        if ModalResult = mrOK then
          if dlg.ListBox1.ItemIndex >= 0 then
            edit1.Text := dlg.ListBox1.Items [dlg.ListBox1.ItemIndex];
    
    Free the form
              dlg.DisposeOf;
  • 相关阅读:
    linux UID,GID,EUID,EGID,SUID,SGID
    Hard模式题目
    【Todo】Java TreeSet学习 & ceiling,floor
    被信号打断的系统调用
    拟牛顿法——变种及其相互关系
    域名注册查询接口(API)的说明
    HDU 2825 Wireless Password(AC自动机+状压DP)
    串的模式匹配
    Android DES加密的CBC模式加密解密和ECB模式加密解密
    [Web Chart系列之五] 6. 实战draw2d之ConnectionRouter
  • 原文地址:https://www.cnblogs.com/china1/p/3377655.html
Copyright © 2011-2022 走看看