Delphi XE6 - 希望编写3个或4个RELATED应用程序,所有这些应用程序将使用相同的基本数据例程,因此我希望制作一个所有应用程序都将使用的通用,灵活的API。我的问题出现在API的一部分上,移动了公司数据。公司的数据将有大约30个属性,其中MOST将来自一个表,但少数将是计算等...我可以把它放在一个简单的类中。
我的问题来自这样一个事实:我不会总是知道许多公司会在例程之间传递。例如,我将有一个API调用,上面写着“查找以某个值开头的公司名称。可能有1个或者可能有15个。如何处理子例程中的数据,然后在调用例程中提供对它的访问权限我的第一个想法是使用VAR TObjectList。被调用的例程然后将清除TObjectList,处理数据,并添加到TObjectList。我以前没有使用TObjectList。有没有理由不这样做?
答案 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;