我有一个创建表单的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表单。 等到用户在表单上保存数据。 在屏幕上更新表格。