调用dll表单的Delphi FMX按钮在退出例程之前等待表单完成

时间:2016-04-06 13:19:54

标签: forms delphi dll firemonkey

我有一个创建表单的dll,并使用传递给它的字符串来设置数据库连接的变量。一切正常。我的问题出在我的主要表单上,我需要在关闭dll表单时刷新一些数据库表。我该怎么做。

我的dll是

library Contact;

uses
  System.SysUtils,
  System.Classes,
  FMX.Forms,
  NewContact in 'NewContact.pas' {FMNewContact};

{$R *.res}

procedure NewContactShow(Title: string;
                         Table: string;
                         Connection: String;
                         Param: TStrings); StdCall export;
begin
  FMNewContact := TFMNewContact.Create(nil); // creates the form
  FMNewContact.TableName := Table;
  with FMNewContact do
  begin
    Caption := Title;
    FDConnect.ConnectionName := Connection;
    FDConnect.Params.Text := Param.Text;
    FDConnect.Connected := True;
    Saved := False; //Flag to say the Form new data has been saved to db table; 
    Show;
  end;
end;

function GetStatus(): Boolean;
begin
  Result := FMNewContact.Saved; // get status of flag before destroying form.
  FMNewContact.Destroy;
end;

exports
  NewContactShow,
  GetStatus;

begin
end.

以我的主表格

procedure TForm1.NewBttnClick(Sender: TObject);
begin
  try
    // Creates the form and displays in fine.
    NewContactShow('Enter New Employee',
                   'Employee',
                   FDTimeCard.ConnectionName,
                   FDTimeCard.Params);
  finally
    // This destroys the form before user can deal with it 
    if GetStatus then
      BuildEmployeeTable(); 
  end;
end;

如果我删除GetStatus检查表在用户在dll表单上输入信息之前更新

所以目标是

我需要调用Dll表单。 等到用户在表单上保存数据。 在屏幕上更新表格。

0 个答案:

没有答案