繁体   English   中英

将Delphi TFrame后代包装为ActiveX控件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM