即是可以象VB的开发环境那样动态的加载任意的ACTIVEX控件
解决方案 »
- 三层结构中,服务端如何得到连接数和主连接的IP或计算机名
- Edit获得焦点后如何不进入编辑状态??
- 接口的理解问题?
- 请大家帮忙,不胜感激~~我是初学者
- 刚结完了所有的贴,心情不错,散分!!
- 求助Delphi SMS短信开发应用的有关资料
- 請問各位軟件開發工程師,一個項目提成的問題,是否都正常拿到提成?或者真正的是自己的付出與所得成正比?
- 请问那位仁兄,知道下载的第三方控件要放在那?怎样在程序里调用?
- WEB应用程序—图形统计分析
- 菜鸟求帮助cmd中一个folder里写不同directory的command
- 在IE中如果点击“搜索”或者“收藏夹”或者“历史”页面左侧就会出现一个小窗口,点击“叉”还可以关闭,请问有没有这样的组件可实现这种
- 开机启动程序问题
本人也有这样的疑问。
procedure TfrmMain.LoadPlugIns;
var
Files: TStrings;
i: Integer;
TestPlugIn: TTestPlugIn;
NewMenu: TMenuItem;
GetCaption: TGetCaption;
begin
Files := TStringList.Create;
Plugins := TList.Create;
//查找指定目录下的.dll文件,并存于Files对象中
SearchFileExt(ExtractFilepath(Application.Exename), '.dll', Files);
//加载查找到的DLL
for i := 0 to Files.Count - 1 do
begin
TestPlugIn := TTestPlugIn.Create;
TestPlugIn.Address := LoadLibrary(PChar(Files[i]));
if TestPlugIn.Address = 0 then
raise EDLLLoadError.Create('装载' + PChar(Files[i]) + '失败');
try
@GetCaption := GetProcAddress(TestPlugIn.Address, 'GetCaption');
TestPlugIn.Caption := GetCaption;
TestPlugIn.Call := GetProcAddress(TestPlugIn.Address, 'ShowDLLForm');
PlugIns.Add(TestPlugIn);
//创建菜单,并将菜单标题,Onclick事件赋值
NewMenu := TMenuItem.Create(Self);
NewMenu.Caption := TestPlugIn.Caption;
NewMenu.OnClick := PlugInsClick;
NewMenu.Tag := i;
N_plugins.Add(NewMenu);
except
raise EDLLLoadError.Create('初始化失败');
end;
end;
Files.Free;
end;