典型失败的代码:
以下代码,未遵循数据层,界面层的原则.将数据层和界面层混合写在一起.
procedure TfmMainHQServer.LoadPlugs;
var
i: Integer;
AListItem: TListItem;
sHqPlugFilePath: String;
Ahdl: THandle;
begin
for i := 0 to lvHqPlugs.Items.count - 1 do
begin
AListItem := lvHqPlugs.Items[i];
if not AListItem.Checked then Continue;
sHqPlugFilePath := AListItem.SubItems[1];
Ahdl := LoadPackage(sHqPlugFilePath);
if Ahdl <= 0 then
begin
SendExceptMsg('操作失败:加载行情插件失败(插件路径=' +
QuotedStr(sHqPlugFilePath) + ')');
end;
AListItem.Data := Pointer(Ahdl);
AListItem.SubItems[2] := '已加载';
DispRunLog('插件加载:' + AListItem.SubItems[0] + '-行情插件加载成功!');
end;
end;
正确的写法:
插件信息声明;
读取插件信息到插件列表(tlist).
将list的内容显示在界面上.
ps:界面列表,并不能代替插件列表本身,这种混装的代码形式,缺乏灵活性,健壮性.