将Delphi TFrame后代包装为ActiveX控件

mmm*_*mmm 2 delphi activex

我试图将TFrame后代包装为ActiveX控件,但似乎无法让控件显示在ActiveX控件向导中.这种方法是否可行,如果可行,是否有任何可以指出的工作实例.

我试图按照这里的说明进行操作,但正如我所说的控件显示在可用控件列表中.

提前致谢.

RRU*_*RUZ 5

@Mmarquee,执行此操作的简单方法是使用Activeform,这是一个封装Delphi表单的ActiveX控件,您可以使用@Francois建议或下一个方法,可以轻松部署任何标准格式作为activex控件.

首先,您需要创建一个新的activex控件

alt text http://i46.tinypic.com/og2lc.png

然后你添加新的activeform

替代文字http://i49.tinypic.com/20z1nk1.png

现在,您需要创建一个新的标准表单并将组件放在此处.

将标准表单的用法添加到所在的单元中,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;
Run Code Online (Sandbox Code Playgroud)

最后在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;
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看这些链接