XE6:

http://docwiki.embarcadero.com/RADStudio/XE6/en/Generating_an_Active_Form_Based_on_a_VCL_Form

http://docwiki.embarcadero.com/RADStudio/XE8/en/Creating_a_VCL_Forms_ActiveX_Active_Form

http://docwiki.embarcadero.com/RADStudio/Seattle/en/Using_ActiveX_Controls_Index

Generating an Active Form Based on a VCL Form

Go Up to Using ActiveX controls Index

Unlike other ActiveX controls, Active Forms are not first designed and then wrapped by an ActiveX wrapper class. Instead, the Active Form wizard generates a blank form that you design later when the wizard leaves you in the Form Designer.

You can test an Active Form by creating an HTML page to contain a reference to the Active Form and specify its location on the page. The Active Form can then be displayed and run from a Web browser. Inside the browser, the form behaves just like a stand-alone Delphi form. The form can contain any VCL components or ActiveX controls, including custom-built VCL controls.

To start the Active Form wizard:

  1. Choose either:

    This creates a Dynamic Link Library [DLL] project that you can use to host in-process ActiveX Objects.
  2. Now choose either:
    • File > New > Other > Delphi Projects > ActiveX > Active Form
    • File > New > Other > C++Builder Projects > ActiveX > Active Form

On the Active Form wizard, you cannot specify the name of the VCL class to wrap. This is because Active forms are always based on Vcl.AxCtrls.TActiveForm.

You can change the default names for the CoClass, implementation unit, and ActiveX library project. Similarly, this wizard lets you indicate whether you want your Active Form to require a license, whether it should include version information, and whether you want an About box form.

When you exit the wizard, it generates the following:

  • An ActiveX Library project file, which contains the code required to start an ActiveX control. You usually don't change this file.
  • A type library, which defines a CoClass for your control, the interface it exposes to clients, and any type definitions that these require. For more information about the type library, see Working with Type Libraries - Overview.
  • A form that descends from AxCtrls.TActiveForm. This form appears in the Form Designer, where you can use it to visually design the Active Form that appears to clients. Its implementation appears in the generated implementation unit. In the initialization section of the implementation unit, a class factory is created, setting up Vcl.AxCtrls.TActiveFormControl as the ActiveX wrapper for this form.
  • An About box form and unit if you requested them.
  • An .LIC file if you enabled licensing.

At this point, you can add controls and design the form as you like.

After you have designed and compiled the Active Form project into an ActiveX library (which has the OCX extension), you can create a test HTML page that contains a reference to the Active Form. Then you can test the project using an ActiveX-enabled Web browser. For instructions, see Creating a VCL Forms ActiveX Active Form.

XE:

http://docwiki.embarcadero.com/RADStudio/XE/en/Generating_an_ActiveX_Control_Based_On_a_VCL_Form

Unlike other ActiveX controls, Active Forms are not first designed and then wrapped by an ActiveX wrapper class. Instead, the ActiveForm wizard generates a blank form that you design later when the wizard leaves you in the Form Designer.

When an ActiveForm is deployed on the Web, Delphi creates an HTML page to contain the reference to the ActiveForm and specify its location on the page. The ActiveForm can then displayed and run from a Web browser. Inside the browser, the form behaves just like a stand-alone Delphi form. The form can contain any VCL components or ActiveX controls, including custom-built VCL controls.

To start the ActiveForm wizard:

  1. Choose File > New > Other to open the New Items dialog box.
  2. Select the tab labeled ActiveX under the language you are using (Delphi or C++).
  3. Double-click ActiveX Library. This creates a Dynamic Link Library [DLL] project that you can use to host in-process ActiveX Objects.
  4. Choose File > New > Other again.
  5. Select the ActiveX tab again.
  6. Double-click the ActiveForm icon.

On the Active Form wizard, you can't specify the name of the VCL class to wrap. This is because Active forms are always based on AxCtrls.TActiveForm.

You can change the default names for the CoClass, implementation unit, and ActiveX library project. Similarly, this wizard lets you indicate whether you want your Active Form to require a license, whether it should include version information, and whether you want an About box form.

When you exit the wizard, it generates the following:

  • An ActiveX Library project file, which contains the code required to start an ActiveX control. You usually don't change this file.
  • A type library, which defines and CoClass for your control, the interface it exposes to clients, and any type definitions that these require. For more information about the type library, see Working with Type Libraries - Overview.
  • A form that descends from AxCtrls.TActiveForm. This form appears in the form designer, where you can use it to visually design the Active Form that appears to clients. Its implementation appears in the generated implementation unit. In the initialization section of the implementation unit, a class factory is created, setting up AxCtrls.TActiveFormControl as the ActiveX wrapper for this form.
  • An About box form and unit if you requested them.
  • A .LIC file if you enabled licensing.

At this point, you can add controls and design the form as you like.

void __fastcall InitializeControl()
{
m_VclCtl->OnActivate = ActivateEvent;
// m_VclCtl->OnAfterMonitorDpiChanged = AfterMonitorDpiChangedEvent;
// m_VclCtl->OnBeforeMonitorDpiChanged = BeforeMonitorDpiChangedEvent;
m_VclCtl->OnClick = ClickEvent;
m_VclCtl->OnCreate = CreateEvent;
m_VclCtl->OnDblClick = DblClickEvent;
m_VclCtl->OnDeactivate = DeactivateEvent;
m_VclCtl->OnDestroy = DestroyEvent;
m_VclCtl->OnMouseEnter = MouseEnterEvent;
m_VclCtl->OnMouseLeave = MouseLeaveEvent;
m_VclCtl->OnPaint = PaintEvent;
}

XE 创建 Active Form的更多相关文章

  1. JavaScript 创建一个 form 表单并提交

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  2. Swing 解决 idea 找不到创建gui form的问题

    果然,寄希望于百度google不如自己动手,还是得吃透文档, 然后就是对于别人的博客要严格对照步骤来,否则都容易达不到效果 这边gui form在idea下找不到创建,百度google一个说的也没有, ...

  3. django----多对多三种创建方式 form组件

    目录 多对多三种创建方式 全自动 全手动 半自动 form组件 基本使用 form_obj 及 is_valid() 前端渲染方式 取消前端自动校验 正则校验 钩子函数(Hook方法) cleaned ...

  4. Windows Serer 2003 配置手册 – 创建Active Dictionary域

    域与工作组的关系 实际上我们可以把域和工作组联系起来理解,在工作组上你一切的设置在本机上进行包括各种策略,用户登录也是登录在本机的,密码是放在本机的数据库来验证的.而如果你的计算机加入域的话,各种策略 ...

  5. oracle xe 创建表空间

    使用OracleXE控制台,我们会发现一个奇怪的现象:没有提供创建表空间.增加数据文件等功能.这似乎和我们使用Oracle标准版控制台不一样. 其实在OracleXE中可以创建新的表空间,不过一般情况 ...

  6. c++builder Active Form

    新增的属性.方法刷新一下才可以生成方法的实现.保存按钮不生成,刷新就好了. Refresh Implemention

  7. Delphi发布ActiveX控件 制作CAB包 数字签名相关

    文件: SignTool.rar 大小: 84KB 下载: 下载 最近我正在研究ActiveX技术.我使用Delphi 7创建了一个具有ActiveForm的ActiveX控件应用程序.这个控件产生一 ...

  8. Django - Form嵌套的Meta类 + 为什么type()能创建类

    Form里面嵌套了一个Meta类 class PostForm(forms.ModelForm): class Meta: model = Post # field to be exposed fie ...

  9. Delphi ActiveX Form的使用实例

    Delphi ActiveX Form的使用实例 By knityster 1. ActiveX控件简介 ActiveX控件也就是一般所说的OCX控件,它是ActiveX技术的一部分. ActiveX ...

随机推荐

  1. streamsets k8s 部署试用

    使用k8s 进行 streamsets的部署(没有使用持久化存储) k8s deploy yaml 文件 deploy.yaml apiVersion: extensions/v1beta1 kind ...

  2. Jmeter的CSV参数化策略

    前提:准备一份csv文件,数字为1-9即可 线程相当于vu,循环相当于迭代 一.所有线程所有线程共享这一份文件,数据有一个线程拿走了,其他线程就拿不走 例子1:只有1个线程,循环次数2次,那么,按照上 ...

  3. C语言面试题4

    第二部分:程序代码评价或者找错 1.下面的代码输出是什么,为什么?void foo(void){    unsigned int a = 6;    int b = -20;    (a+b > ...

  4. meta viewport 理解

    移动设备上的浏览器如果不指明 viewport 这个meta,当你从移动设备上浏览网页的时候,它假设(你浏览的是桌面版并且你想看到所有的内容),不只是一个左上角.因此,它会把viewport的宽度设置 ...

  5. ES(1): Creat linux VM on Azure

    本章记录在ES集群之前的环境准备工作,主要包含的内容如下: 目录: 创建linux虚拟机 启用root用户 创建linux虚拟机 首先创建一个云服务 按向导创建云服务名称,如下 创建虚拟机, 第二步: ...

  6. 转-使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器

    使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器 2016-09-23    分类:.NET开发.编程开发.首页精华0人评论 分享到:更多3 本文由码农网 – 小峰原创翻译,转载 ...

  7. each与list的用法(PHP学习)

    1.each的用法 先看API array each ( array &$array ) api里是这么描述的:each — 返回数组中当前的键/值对并将数组指针向前移动一步 我们先来看看返回 ...

  8. Java之优先队列

    PriorityQueue属于Java Collections Framework.PriorityQueue基于优先级堆,它是Queue接口的实现.当我们需要一个Queue实现时,可以使用这种数据结 ...

  9. js中,object可以调用style对象,[]不可以调用style对象

    <!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" Content=&q ...

  10. 学学Gearman

    通常,多语言多系统之间的集成是个大问题,一般来说,人们多半会采用WebService的方式来处理此类集成问题,但不管采用何种风格的WebService,如RPC风格,或者REST风格,其本身都有一定的 ...