Delphi - 在例程之间传递大量数据

时间:2014-09-04 17:43:26

标签: delphi variables

Delphi XE6 - 希望编写3个或4个RELATED应用程序,所有这些应用程序将使用相同的基本数据例程,因此我希望制作一个所有应用程序都将使用的通用,灵活的API。我的问题出现在API的一部分上,移动了公司数据。公司的数据将有大约30个属性,其中MOST将来自一个表,但少数将是计算等...我可以把它放在一个简单的类中。

我的问题来自这样一个事实:我不会总是知道许多公司会在例程之间传递。例如,我将有一个API调用,上面写着“查找以某个值开头的公司名称。可能有1个或者可能有15个。如何处理子例程中的数据,然后在调用例程中提供对它的访问权限我的第一个想法是使用VAR TObjectList。被调用的例程然后将清除TObjectList,处理数据,并添加到TObjectList。我以前没有使用TObjectList。有没有理由不这样做?

1 个答案:

答案 0 :(得分:2)

您可以使用回调例程:作为参数传递给公司提取例程(B)的例程(A)。 B为数据集中找到的每个匹配记录调用A.

{MainForm}

procedure TMainForm.HandleCompany(ACompany: TCompany);
begin
  //For example
  Memo1.Lines.Add(ACompany.Name);
  Memo1.Lines.Add(ACompany.Address);
end;

procedure TMainForm.Button1Click(Sender: TObject);
begin
  MyAPI.GetCompanies(HandleCompany);
end;

{MyAPI}

type
  TCompanyHandler = procedure (ACompany: TCompany) {of object};

procedure GetCompanies(CompanyHandler: TCompanyHandler);
var
  Company: TCompany;
begin
  for Company in Companies do
    CompanyHandler(Company);
end;