[英]Wrapping a Delphi TFrame descendant as an ActiveX control
我试图将TFrame后代包装为ActiveX控件,但似乎无法使该控件显示在ActiveX控件向导中。 这种方法是否可行?如果可以,我可以指出任何可行的示例。
我试图按照此处的说明进行操作,但是正如我所说的,该控件显示在可用控件列表中。
提前致谢。
@Mmarquee,执行此操作的简单方法是使用Activeform ,这是一个封装Delphi表单的ActiveX控件,您可以使用@Francois建议,或者通过下一个方法可以轻松地将任何标准表单部署为Activex控件。
首先,您需要创建一个新的activex控件
然后添加新的activeform
现在,您需要创建一个新的标准表单并将组件放在此处。
将标准格式的用法添加到TActiveForm
所在的单元中,并以此方式声明标准格式的变量
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ActiveX, AxCtrls, Project75_TLB, StdVcl,
Form1; //your unit with the standard form
type
TActiveFormX = class(TActiveForm, IActiveFormX)
private
...
public
MyForm : TForm1;
最后,在ActiveForm的oncreate事件中,您将代码放入标准表单中,并嵌入到activeform内。
procedure TActiveFormX.ActiveFormCreate(Sender: TObject);
begin
MyForm := TForm1.Create(Self); //set the owner
MyForm.Parent := Self;//embed the form
MyForm.Align := alClient;
MyForm.BorderStyle := bsNone; //hide the border of the form
MyForm.Visible := True;//makes the form visible
end;
有关更多信息,请检查这些链接
我认为最简单的方法是正常创建TFrame,因此您可以在常规Delphi应用程序中使用它。
然后创建一个空的ActiveForm并将您的框架放入其中。
瞧,您可以在任何需要的地方使用ActiveForm ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.