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;
  • 相关阅读:
    搭建VirtoCommerce2.6开发环境,同官方dev分支保持同步(上)
    VirtoCommerce中文博客站,2015年11月18日上线了!
    C#编程连接数据库,通过更改配置文件切换数据库功能。
    浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧
    将listBox中信息显示在dataGridview中,操作datagridview后删除listBox信息和SQL数据库信息 续(浅谈listBox..)
    for语句嵌套使用 实现9*9乘法表
    浅谈ListBox控件,将对象封装在listBox中,在ListBox中显示对象中某个属性,在ListBox中移除和移动信息
    使用SignalR为FineUI/Webform打造消息总线
    封装一个错误重试类
    封装一个锁处理类
  • 原文地址:https://www.cnblogs.com/china1/p/3377655.html
Copyright © 2011-2022 走看看