如果你想通过dll方式封装一些通用操作项,是可以实现的,由于它并不是在可视化状态下,所以frame方式是不适用的。
可通过以下方式:
一、在DLL导出函数,如下:
把这些控制项,在你所设计的DLL窗体中,置于一个容器中,如TPanel,然后导出引用函数。
exports ExportNavControlPanel; //DLL中导出这个函数
function ExportNavControlPanel: TPanel;
begin
frmNavg := TfrmNavg.Create(nil); //这个窗体是你这些导航工具条所在的DLL窗体
Result := frmNavg.NavControl; //NavControl是你包含这些导航工具所在的容器TPanel
end;
end;
假定DLL名称为dllNav.dll
二、主程序中调用这个DLL;
function LoadResultObjectInDll(dllName, Method: string): TObject;
var
hdll : THandle;
pf : function: TObject;
begin
Result := nil;
try
hdll := LoadProcLibrary(dllName);
if hdll = 0 then exit;
pf := GetProcAddress(hdll, PChar(Method));
if @pf <> nil then Result := pf;
finally
@pf1 := nil;
end;
end;
procedure TForm1.Button1Click(Sender: Tobject);
var
fPnlNav: TPanel;
begin
fPnlNav := LoadResultObjectInDll('dllNav.dll', 'ExportNavControlPanel'); //从DLL调用这个导航条
fPnlNav.Parent := Panel1; //将DLL导航条的Parent设为你主程序窗体上的Panel1
...
end;
在需要使用的地方,就采用上面的方式来调用。
使用frame
New->Delphi files->vcl frame
把按钮放到Frame上保存后,就可以用了
具体使用:1.新建一个窗体 2.选择组件面板“standard”页的“frames”组件,(选中),再点击窗体,就能够添加您刚创建的frame了
只要功能一样就行了吧,不一定要连控件都一样吧
1楼说的不错,用Frame把..