delphi – 使用新事件创建自定义框架
|
我正在研究delphi XE2.
我需要的: 我需要带有框架的MyFrame类,没有任何可见的组件,但是在Object Inspector中可以看到新事件.此事件将通知我的表单(将放置MyFrame对象),即f.e.框架上的所有数据都已满. 是)我有的: delphivclide := GetModuleHandle('delphivclide160.bpl');
有了这个: delphivclide := GetModuleHandle('vcldesigner160.bpl');
我有新框架的代码: unit MyFrame;
interface
uses
System.Classes,Vcl.Forms;
type
TMyFrame = class(TFrame)
private
protected
FOnFilledData : TNotifyEvent;
public
published
property OnFilledData : TNotifyEvent read FOnFilledData write FOnFilledData;
end;
implementation
end.
注册单位的代码: unit MyFrameReg;
interface
procedure Register;
implementation
uses Windows,DesignIntf,Dialogs,wFrame;
procedure Register;
var
delphivclide: THandle;
TFrameModule: TCustomModuleClass;
begin
delphivclide := GetModuleHandle('vcldesigner160.bpl');
if delphivclide <> 0 then
begin
TFrameModule := GetProcAddress(delphivclide,'@Vclformcontainer@TFrameModule@');
if Assigned(TFrameModule) then
begin
ShowMessage('I''m here');
RegisterCustomModule(TMyFrame,TFrameModule);
end;
end;
end;
end.
当我构建我的包时,我收到了我在这里的消息,所以我说,MyFrame已注册. 我的问题是什么: 如果有人可以告诉我,我做错了,我会很高兴的. 解决方法
A.框架类注册
没有必要以“hacky方式”做到这一点 uses ... DMForm,VCLFormContainer,... procedure Register; begin ... RegisterCustomModule(TYourFrameClass,TFrameModule); // for frames RegisterCustomModule(TYourModuleClass,TDataModuleCustomModule); // for data modules ... end; 还有另一种方法可以添加帧 type
TNestableWinControlCustomModule = class (TWinControlCustomModule)
public
function Nestable: Boolean; override;
end;
function TNestableWinControlCustomModule.Nestable: Boolean;
begin
Result := True;
end;
? RegisterCustomModule(TYourFrameClass,TNestableWinControlCustomModule); 单位名称(在XE7中测试): TCustomModule => DesignEditors TDataModuleCustomModule => DMForm(designide.dcp) TWinControlCustomModule => WCtlForm(designide.dcp) TFrameModule => VCLFormContainer(vcldesigner.dcp) 我想,对于FireMonkey,它应该可以以类似的方式(找到fmxdesigner.dcp&检查记事本里面的内容) B.要在“新建…”向导中使用它,您需要注册向导类. PS.在较旧的Delphi版本中,单元DMDesigner中有TDataModuleDesignerCustomModule元类而不是TDataModuleCustomModule PPS.其他现有的元类名称: TCustomFormCustomModule TIDESourceModuleCustomModule (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
