一、基础知识介绍:

1、ActiveForm的基础知识介绍:

在Delphi中,ActiveForm是封装了Delphi Form的一种ActiveX控件。ActiveForm其实是一种标准的Delphi From(ActiveForm继承自TForm)。ActiveForm中可能会包含某些VCL或者ActiveX组件,包括用户自定义的组件。 就像“标准的”Windows应用程序一样,我们也可以向ActiveForm中添加代码以及对事件作出应答。唯一的区别是,ActiveForm的标题栏(title bar)在运行时是不可见的,只是在设计时才可见。

2、ActiveForm的作用:开发B/S模式下的运行的应用程序(开发浏览器的客户端应用程序

使用Delphi ActiveForm的功能可以开发一个在浏览器中执行的Delphi应用程序。由于ActiveForm可以包含任何Delphi中的VCL组件,所以程序员可以建立一个拥有数据感知能力的ActiveForm组件,具有处理数据的能力,当它使用于IE时,就可以让IE变成能够处理数据的应用系统。

 

3、用ActiveForm开发B/S模式与C/S模式是不一样的。

使用Delphi ActiveForm的功能开发一个可以在浏览器中执行的Delphi应用程序时,与通常的Delphi开发应用程序并不相同。Delphi开发在C/S模式下运行的应用程序,通常选择菜单项“File”—〉“New”—〉“Application”,从而建立一个新的project来完成。 开发在B/S模式下运行的应用程序,和C/S模式有些区别。

 

二、 ActiveForm工程

1、创建一个ActiveForm工程的具体步骤:

1>、【File】—>【Close All】,首先关闭所有的项目。

2>、然后【File】—〉【New】,打开New Items对话框。切换到【ActiveX选项卡】中选择建立【Active Form】。然后点【OK】按钮,打开向导窗体。该向导会创建一个ActiveX library项目来包含ActiveForm和一个可定制的激活的Form窗口。

3>、在向导窗体中输入New ActiveX name,这里我输入一个AFHello,其它保持默认,点击【OK】。(自动创建了一个ActiveX Library 工程,一个Form窗口,一个实现文件,一个类型库,以及一个包含了所有这些类型库说明信息的类型库文件(.TLB文件)。)

4>、这时Delphi为我们建立好了一个ActiveForm的窗体,我们先拉一个按钮到窗体上,把按钮的name属性设为btnHello,Caption设为say hello,在按钮的onclick事件中,输入编程:

  procedure TAFHello.btnHelloClick(Sender: TObject);
  begin
     MessageBox(Handle,'我的第一个ActiveForm','hello',mb_ok)
  end; 

5>、代码的部份完成了,选择菜单"File"->"Save All",保存所有工程,我这里是将工程中的所有文件保存在“D:\AFHello\"目录下,

6>、下面就是要将ActiveForm发布出来了,从下拉菜单中选中"Project"->"Web Deployment Options",在弹出的窗口输入如下信息:
Target dir : OCX保存的目录;ActiveForm组件于HTML首页中codebase tag的目的。
Target URL :  OCX发布后的虚拟目录,这里".\"表示在根目下;Delphi分发ActiveX组件的时候自动产生一个HTML的首页档案; 
HTML dir : 输出一个包含控件的Html文件,它的存放目录;点击【OK】按钮,

<HTML>

<H1> Delphi 7 ActiveX Test Page </H1><p>

You should see your Delphi 7 forms or controls embedded in the form below.

<HR><center><P>

<OBJECT

classid="clsid:82C92557-9E0F-4E54-93BF-B36BDC598625"

codebase="./ActiveFormProj1.ocx#version=1,0,0,0"

width=350

height=250

align=center

hspace=0

vspace=0

>

</OBJECT>

</HTML>

7>、然后从下拉菜单中选中"Project"->"Web Deploy",进行发布,在目标目录中生成了一个htm文件和一个ocx文件,从IE加载htm文件,就可以运行ocx了.用鼠标点击一个"say hello"按钮,看看运行情况是怎么样的。

8>、哈哈,第一个ActiveForm工程就完成了!点击htm文件运行。(另外需要修改IE的设置,否则默认情况下OCX会因为安全性问题禁止被运行。如果有签名就没有安全性问题,但是签名的证书是要花钱买的)

2、注册ActiveForm控件

要想在其它项目中调用我们刚创建的Active Form,我们必须先将其注册到Windows消息系统中,然后还要将其添加到Delphi的VCL类库中,这样在其它项目中才能找到该Active Form控件并进相应的使用。

注册ActiveForm,也组成普通的Active控件的一样的。

3、调用ActiveForm控件

使用其它的VCL控件一样使用我们添加的ActiveForm控件。在Delphi中,点击File->New->Application创建一个新的应用程序,然后在其默认创建的Form窗口中添加我们刚添加的Active Form控件。

http://blog.csdn.net/zang141588761/article/details/51248198

Delphi 编写ActiveForm窗体工程知识和样例(开发浏览器客户端应用程序)(有详细步骤)的更多相关文章

  1. 2单表CRUD综合样例开发教程

    东软集团股份有限公司 基础软件事业部 单表CRUD综合样例开发教程 东软机密 tui 更改履历 版本号 更改时间 更改的 图表和章节号 状态 更改简要描述 更改申 请编号 更改人 批准人 V1.0 2 ...

  2. Delphi 编写ActiveX控件(OCX控件)的知识和样例(有详细步骤)

    一.ActiveX应用情况简介: ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分.ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32 ...

  3. Delphi 编写DLL动态链接库文件的知识和样例(有详细步骤,很清楚)

    一.DLL动态链接库文件的知识简介: Windows的发展要求允许同时运行的几个程序共享一组函数的单一拷贝.动态链接库就是在这种情况下出现的.动态链接库不用重复编译或链接,一旦装入内存,Dlls函数可 ...

  4. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  5. WebGL自学教程——WebGL演示样例:開始

    最终開始WebGL的演示样例了,...... 開始 使用WebGL的步骤,非常easy: 1. 获得WebGL的渲染环境(也叫渲染上下文). 2. 发挥你的想象力,利用<WebGL參考手冊> ...

  6. 第一节:.Net版基于WebSocket的聊天室样例

    一. 说在前面的话 该篇文章为实时通讯系列的第一节,基于WebSocket编写了一个简易版聊天样例,主要作用是为引出后面SignalR系列的用法及其强大方便之处,通过这个样例与后续的SignalR对比 ...

  7. [持续交付实践] pipeline使用:项目样例

    项目说明 本文将以一个微服务项目的具体pipeline样例进行脚本编写说明.一条完整的pipeline交付流水线通常会包括代码获取.单元测试.静态检查.打包部署.接口层测试.UI层测试.性能专项测试( ...

  8. [转] Lodop、C-Lodop使用说明及样例

    本文转自:http://www.lodop.net/LodopDemo.html Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现 复杂打印. ...

  9. WEB打印控件Lodop(V6.x)使用说明及样例

    WEB打印控件Lodop(V6.x)使用说明及样例 Lodop是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码生成复杂打印页. 控件功能强大,却简单易用,所有调用如同JavaScript扩展 ...

随机推荐

  1. eclipse使用Hibernate tools反向工程插件遇到的几个问题

    1,在eclipse使用hibernate工具,生成hibernate配置文件时,可能会提示not parse ....xml错误 参见 加载本地dtd 2,反向工程中,生成配置文件时,一般要填写其默 ...

  2. Thermal zone monitoring in an electronic device

    FIELD One embodiment of the invention relates to a closed loop thermal control process in a portable ...

  3. HDU 1080 Human Gene Functions - 最长公共子序列(变形)

    传送门 题目大意: 将两个字符串对齐(只包含ACGT,可以用'-'占位),按照对齐分数表(参见题目)来计算最后的分数之和,输出最大的和. 例如:AGTGATG 和 GTTAG ,对齐后就是(为了表达对 ...

  4. Python应用库大全总结

    学python,想必大家都是从爬虫开始的吧.毕竟网上类似的资源很丰富,开源项目也非常多. python学习网络爬虫主要分3个大的版块:抓取,分析,存储 当我们在浏览器中输入一个url后回车,后台会发生 ...

  5. Docker + .NET Core(一)

    原文:Docker + .NET Core(一) 前言: 环境:centos7.5 64 位 正文: 拉取 microsoft/dotnet, 安装完毕后执行 docker images 可以看到本地 ...

  6. solr 7.x 配置ikanalyzer

    一.使用支持高版本的ikanalzyer进行分词配置(尾部有文件链接) ikanalyzer最后更新是在2012年,对于高版本的lucee不支持.但网上还是有被修改过的Ikanalyzer的6.5.0 ...

  7. Android官方教程翻译(6)——添加ActionBar

    The action bar allows you to add buttons for the most important action items relating to the app's c ...

  8. react中属性默认值是true?

    看到项目代码中 return ( <MyWebView state="Login" title="登录app" ref="login" ...

  9. WPF 高性能笔

    原文:WPF 高性能笔 本文告诉大家WPF的INK的实现,和如何做一个高性能的笔. 高性能的笔迹在 WPF 包含两个部分,一个是就是输入,第二个就是渲染. 如果需要经过路由事件才收到输入,如果有人在路 ...

  10. pushbutton成为可点击的图标(实现全透明,不论点击与否都只显示Icon)(也就是一个万能控件)

    需求 需要2个按钮,一个是音乐开关,一个是关闭窗口,此文章关闭pushButton的透明问题(hovered+pressed都不会有背景色和边框的变化) 原理 使窗口完全透明 代码 _pPushBut ...