增加难度,请放到记事本中阅读方便
*****************************************************************
主窗体main.pas:
function SetModualRight(MainForm:TForm;const UserNO,ADept: string;ARow,ACol: Integer;AParent: TWincontrol;suiFileTheme1:TsuiFileTheme;adoBtn,temp: TADOQuery):Integer;stdcall;
external 'D:/MyDoc/Sell/system/SysUnit.dll';
主窗体按钮单击事件(调用SysUnit.dll动态的创建好多按钮)
SetModualRight(Fmain,g_UserNO,'XS',3,5,pnl1,suiFileTheme1,fDM.adoBtn,fDM.temp);
——————————————————————————————————————————
所有动态库里的公用单元文件Base_Base.pas:
function SetModualRight(MainForm:TForm;const UserNO,ADept: string;ARow,ACol: Integer;
AParent: TWincontrol;suiFileTheme1:TsuiFileTheme;adoBtn,temp: TADOQuery):Integer;stdcall;
begin
......此处省略代码(这部分代码就是用循环语句创建的很多按钮)...........................
btn[i,j]:= TButton.Create(TPanel(AParent));
btn[i,j].parent:= AParent;
{注意:所有的按钮都在主窗体(main.pas)的不同的Panel上(每个模块一个小Panel,所有的小Panel都在同一个大Panel上)}
btn[i,j].OnClick:=fBase_Base.BtnClick; //注意:问题就在这里
......此处省略代码(这部分代码就是用循环语句创建的很多按钮)...........................
end;
procedure fBase_Base.BtnClick(Sender: TObject这里还要一些这样参数,才能识别是哪个模块,但是参数怎么传递呢?还要和动态创建的按钮的OnClick兼容);
begin
showmessag('你好')
end;
——————————————————————————————————
sys模块的SysUnit.dll里的一个单元文件sysunit.pas
procedure sysdll(这里的参数怎么写,怎么去传递呢?);
begin
if 动态创建的按钮.Caption='AA' then
打开窗体AA
else if 动态创建的按钮.Caption='BB' then
打开窗体BB;
end;
-----------------------------
xt模块xtUnit.dll里的一个单元文件xtUnit.pas
procedure xtdll(这里的参数怎么写,怎么去传递呢?);
begin
if 动态创建的按钮.Caption='CC' then
打开窗体CC
else if 动态创建的按钮.Caption='DD' then
打开窗体DD;
end;
-------------------------------------------------------------
procedure TfrmMain.OnCustomMenuCall(Sender: TObject);
var
aCMI : TCustomMenuItem;
cfa : TfrmDynaCustomQuery;
fci : TFormClassItem;
begin
aCMI := GBaseSysSetting.CustomMenuMgr.GetItem(Sender);
fci := FormClassMgrUnit.GFormClassMgr.GetItemByAliasName(aCMI.FormType);
if fci = nil then exit;
cfa := TfrmDynaCustomQuery(CallChildForm(Sender, fci.FormClass.ClassName));
cfa.CallAfterShow;
end;
----------------------------------------------------------------
总结:
现在按钮是能看到了,按道理说我在主窗体里单击我动态创建的按钮时,应该会有不同的窗体被打开才对,
但是现在什么都没有弹出来啊。为什么?不知道是我的思路不对还是缺少什么东西?应该怎么写才好?