一、基础知识介绍:

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. 怎样在swift中使用cocoapods导入的第三方oc库

    假如你来到这里,说明你已经開始着手使用swift这门新语言了. 就像Java有Maven一样.Objective-C也有自己的依赖管理工具cocoapods. 可是因为swift才出来不久,眼下非常多 ...

  2. 【codeforces 791D】 Bear and Tree Jumps

    [题目链接]:http://codeforces.com/contest/791/problem/D [题意] 你可以从树上的节点一次最多走k条边. (称为跳一次); 树为无权树; 然后问你任意两点之 ...

  3. mingw qt(可以去掉mingwm10.dll、libgcc_s_dw2-1.dll、libstdc++-6.dll的依赖,mingw默认都是动态链接gcc的库而TDM是静态链接gcc库,tdm版本更好用。用aspack压缩没有问题。qt本身不使用异常处理)good

    原文地址:mingw qt作者:孙1东 不使用Qt SDK,使用mingw编译qt源代码所遇问题及解决方法: configure -fast -release -no-exceptions -no-r ...

  4. tomcat添加跨域访问功能-Access-Control-Allow-Origin:*

    目标:tomcat服务器提供的接口,不能在其他域中访问的时候,需要增 Access-Control-Allow-Origin:* 直接配置的方法很多,但是我一个没有成功过,所以只能自己写拦截器了. 1 ...

  5. Windows SublimeText内使用NDK编译Android so(不用cygwin)

    測试环境: sublime text version 2.0.2, build 2221 和 sublime text stable channel, build 3065 (version3) Wi ...

  6. 封装QtCore(在非Qt项目里使用QString,QJson,QFileInfo,QFile等类)

    单独封装QtCore 一直以来使用QT的特性使用惯了,很多东西QT都封装得很好.如果突然有一天,不使用QT开发了,是不是不习惯. 比如我们经常使用QString很多方法,string,wstring之 ...

  7. c语言学习笔记(13)——链表

    链表 算法: 1.通俗定义: 解题的方法和步骤 2.狭义定义: 对存储数据的操作 3.广义定义: 广义的算法也叫泛型 无论数据是如何存储的,对数据的操作都是一样的 我们至少可以通过两种结构来存储数据 ...

  8. 编程算法 - 旋转矩阵 代码(C)

    旋转矩阵 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 输出旋转矩阵, 使矩阵是按对角线螺旋上升, 在输出规则确定以后, 就能够推断, 上升规律是, ...

  9. 使用python移动飞信模块发送短信

    作者:miaoo 1.应用场景 由于自己做的一个系统需要用到发送短信到自己手机的功能,于是搜索了一下,发现了一个通过移动飞信通道发送短信开源库:PyFetion PyFetion 模拟实现了飞信的通信 ...

  10. Java和Flex积分误差(两)

    1.错误原因 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...