Delphi快速开发OCX步骤

合集下载

ocx控件开发过程

ocx控件开发过程

目录1. 参考资料: (2)2. 控件制作过程: (2)3.控件进行打包并进行数据鉴名 (3)4. 写html,完成程序 (5)1 / 51.参考资料:(1)利用VC6.0的向导创建一个ocx控件的示例(2)vc6<实用>开发activex并发布全攻略(二)(初级篇)网址:/ibznphone/article/details/8066322 2. 控件制作过程:(1) 打开vc6.0,新建一个MFC ActiveXControlWizard项目:(2) 在项目中添加自定义方法sayhello(3)对项目进行测试打开vc的工具->ActiveX Control Test Container菜单。

选择MyActivex控件,然后再选择Control->InvokeMethods选项:可以看到返回值是“hello!”,系统sayhello函数是可以使用的。

注:最后在html加载控件需要classid,此控件classid为7F8BB7A3-A741-4E53-A620-5442A789D7B5。

3.控件进行打包并进行数据鉴名(1) 控件制作完毕并不能直接使用,而是需要注册,手动注册的方法不必赘述,我参考本文3 / 5列的第二篇参考资料用makeCAB工具包进行处理。

下图为各种证书文件和cab打包文件生成后的情景。

(2) 使用makeCAB工具包中的Code Signing Wizard签署CAB文件细节就不写了,详细在参考资料2,后面的个图为签名成功的截图。

4. 写html,完成程序下面为html代码:<HTML><HEAD><META NAME="GENERA TOR" Content="Microsoft Visual Studio 6.0"><TITLE></TITLE><script language="JavaScript">function button1_click(){var object = card.sayhello();alert(object);}</script></HEAD><BODY><P><INPUT id=button1 type=button value=Button name=button1 onClick="button1_click()"><div style="display:none"><OBJECT id="card" classid="clsid:7F8BB7A3-A741-4E53-A620-5442A789D7B5" CODEBASE="hello.cab"></OBJECT></div></P></BODY></HTML>5 / 5。

Delphi编写COM+简介(转)

Delphi编写COM+简介(转)

软件重用是业界追求的目标,人们一直希望能够像搭积木一样随意出配应用程序,组件对象就充当了积木的角色。

所谓组件对象,实际上就是预定义好的、能完成一定功能的服务或接口。

问题是,这些组件对象如何与应用程序、如何与其他组件对象共存并相互通信和交互?这就需要制定?个规范,让这些组件对象按统一的标准方式工作。

COM是个二进制规范,它与源代码无关。

这样,即使COM对象由不同的编程语言创建,运行在不同的进程空间和不同的操作系统平台,这些对象也能相互通信。

COM既是规范,也是实现,它以COM库(OLE32.dll和贴OLEAut32.dll)的形式提供了访问COM 对象核心功能的标准接口以及一组API函数,这些API函数用于创建和管理COM对象。

COM本质上仍然是客户服务器模式。

客户(通常是应用程序)请求创建COM对象并通过COM对象的接口操纵COM对象。

服务器根据客户的请求创建并管理COM对象。

客户和服务器这两种角色并不是绝对的。

组件对象与一般意义上的对象既相似也有区别。

一般意义上的对象是一种把数据和操纵数据的方法封装在一起的数据类型的实例,而组件对象则使用接口(Interface)而不是方法来描述自己并提供服务。

所谓接口,其精确定义是中于对象的一组语义上相关的功能||实际上是一个纯虚类,真正实现接口的是接口对象)(InterfaceObject)。

一个COM对象可以只有一个接口,例如Wndows95/98外壳扩展;也可以有许多接口,例如ActiveX控件一般就有多个接口,客户可以从很多方面来操纵ActiveX控件。

接口是客户与服务器通信的唯一途径。

如果一个组件对象有多个接口,则通过一个接口不能直接访问其他接口。

但是,COM允许客户调用COM库中的QueryInterface()去查询组件对象所支持的其他接口。

从这个意义上讲,组件对象有点像接口对象的经纪人。

在调用QueryInterface()后,如果组件对象正好支持要查询的接口,则QueryInterface()将返回该接口的指针。

OCX控件编写

OCX控件编写

OCX控件新建->项目->MFCActiveX完成后编译器自动添加四个类。

型如:一.事件的添加方法:1.常用事件右键Ctrl类->添加->添加事件->常用事件(Click事件为例)在其他程序调用控件时在控件事件中就可以添加Click事件。

在点击新建的对话框中的控件时就会执行Click事件函数。

如下图2.自定义方法右键.lib类的第一个节点->添加方法添加后在其他程序调用控件时就可以给控件添加变量并调用方法。

二.添加属性以背景色为例,右键Lib类的第一个节点,添加属性,选择常用属性中的BackColor属性(当然也可以自定义属性):在Listcpp中手动添加属性页代码:在OnDraw手动添加:其中上图圈出部分为手动添加的代码,用于当控件被调用时打开改控件的颜色属性面板改变控件的颜色。

而COLORREF col=TranslateColor(GetBackColor);这行代码实现了获取下图颜色面板的颜色并返回给col;如何在新程序中添加控件并实时改变控件的GDI?方法:右键xxxlib文件的第一节点添加方法;完成后在xxxCtrl.cpp文件会添加该函数,例如:void Cocx004Ctrl::myfun1(DOUBLE parag){AFX_MANAGE_STATE(AfxGetStaticModuleState());if(parag>250){parag=0;}CDC*dc=GetDC();CRect rec;GetClientRect(&rec);CBrush bru;CPen pen;pen.CreatePen(PS_SOLID,4,RGB(100,parag,100));dc->SelectObject(&pen);bru.CreateSolidBrush(RGB(parag,100,100));dc->SelectObject(&bru);dc->MoveTo(rec.left,rec.top);dc->LineTo(rec.right,rec.bottom);dc->Ellipse(&rec);ReleaseDC(dc);//TODO:在此添加调度处理程序代码}以上代码实现了控件的简单绘图注:默认属性中除颜色属性外还有字体等属性,这儿未整理。

Delphi 培训(二)控件的开发

Delphi 培训(二)控件的开发

组件的结构
• • 可见性:Private、Protected、 Published(属性窗口可见)、Public 属性(Property),属性类型包括 – 简单类型(字符串、浮点数、整数、 字符等)、枚举、集合 – 对象,必须有自己的属性编辑器 – 数组,必须有自己的属性编辑器 方法(Method) 事件(Event):OnXXXX 流属性:持续化 拥有关系(Owner):Owner释放时,被 Owner者会被同时Free 父子关系(Parent)
创建控件
• 利用Delphi生成框架代码
– Component New VCL Component – 提高生产力,提高正确性,规范化
• 增加方法或编写需要重载的方法
– Override – Wndproc – Message
VCL框架说明
• TObject——万类之源 • TPersistent完成控件的持续化处理,即能够重新加载和 保存控件、控件之间相互赋值的能力 • TComponent,VCL所有组件的父类,只要从此继承,就 可以被“摆放”到窗口上,可以通过它封装一些数据操 作的对象给用户“可视化”编程使用 • TControl,可视控件的基类,这类控件都是可以在窗口 上被用户看到 • TGraphControl,图形控件,无用户输入,不占用 Windows句柄资源,如Label控件、SpeedButton等控件 • TWinControl,可视化句柄控件,有焦点,用户可输入, 占用Windows句柄资源,封装的Windows标准控件都继 承自该类,如Button、Edit、ListView等
控件 2010-11
Delphi 培训(二)
通过本课程,你将掌握——
• Windows是如何通过消息机制来运作的, Delphi是如何完成消息分发,程序运作机制是 怎样的,知道如何利用消息编写控件 • 了解Delphi VCL的框架,知道该用什么控件来 完成什么样的功能,如果自己要编写控件,该 从哪里去继承 • 能够通过Delphi编写一个简单的控件,能够使 用属性编辑器,知道怎么样去封装控件,以便 达到重用目的 • 了解一些简单的OTA机制,能够简单地控制 Delphi开发环境

Delphi控件开发教程

Delphi控件开发教程

Delphi控件开发浅入深出(一)有人说过“不会开发控件的Delphi程序员不是真正的程序员”。

Delphi正是由于高度的可扩展性和大量的第三方控件的支持才能吸引无数程序员挑剔的目光。

即使是由于工作需要使用其他开发工具的开发者也常常怀念和Delphi度过的日日夜夜。

接触Delphi已经一年多了,从当初对着Delphi组件面板上上百个控件不知所措,到现在已经可以根据需要开发一些有一定难度的控件,其中走过的路是十分艰辛的,所以特此写下这篇文章,将自己的经验留给后来者,也算是献给“同门师弟”的一份厚礼吧!需要说明的一点是:在写这篇文章之前我假设读者已经对面向对象的基本知识有一定的了解,所以对于文章中面向对象相关的概念将不再展开讲述。

一、牛刀小试-TURLLabel控件我们从一个能够添加超链接的标签控件开始我们的控件开发之旅吧!既然是Label我们就从Tlabel派生这个控件吧(其实从TcustomLabel派生最好,不过出于简单的目的我们这里先从Tlabel派生)!1、选择“File”->“New”->“Component”,将弹出如下的对话框:在Ancestor type中选择Tlabel,ClassName中填入TURLLabel(名字可以任意取,但是要以T 开头,否则的话会出现注册控件时候的问题)。

这里Ancestor type代表控件的基类,TURLLabel 代表控件的名称。

2、超链接的视觉效果是带下划线的文字,所以我们覆盖父类的构造函数,在构造函数里修改控件的字体属性。

constructor TUrlLabel.Create(AOwner:TComponent);begininherited Create(AOwner);Cursor:=crHandPoint;Font.Style:= [fsUnderline];end;代码解释:(1)inherited Create(AOwner);这句的意思是执行父类的构造函数。

Delphi组件开发教程指南

Delphi组件开发教程指南

Delphi组件开发教程指南一、组件开发概述在开讲之前,首先,我假设你了解什么是面向对象,什么是类。

如果不了解的话,建议先去了解一下相关知识!在Delphi中,组件,我们可以将它理解为一个个的封装好了的功能对象库,使用这个库,就只用简单的几句代码,甚至仅仅简单的设置几个属性就能实现某些功能,我们可以将组件想象成日常生活中使用的某些工具,比如说收音机,我们不必了解其内部构造,只用在播放器上点一个收听按钮就能收听广播。

其实这不仅仅是Delphi组件,Delphi的中的各种对象库都是如此,比如TStingList,只用简单几句代码就能实现一些功能,组件与对象库本质相同,唯一不同的就是组件通过Delphi的IDE接口注册到了IDE中,可以进行可视化的设计,而其他的对象库,需要我们手动创建,然后调用!上面简单阐述了一下Delphi的组件的某些特性以及与其他对象库的一些区别。

下面,咱在说说Delphi的组件的构造层次,说到这个类的层次,有一个非常有名的Delphi对象层次图的(但是我不晓得在什么地方了,有兴趣的可以自己搜搜看,不看也不影响下面的讲解说明)。

上面说了,Delphi的组件其实也是一个对象库,也就是一个类,在Delphi中所有对象的基类都是TObject,组件的最最最基类也是TObject,这里有一个来源于网络的不完整的类结构图这个结构中组件的类层次用黑色粗体标记出来了,也就是TObject---------->TPersistent------------>TComponent------------->TControlTControl又继续分支TPersistent这个类,这个类是一个可持续化的对象库,只要从这个类继承下来的,都自动具备了串行化的功能,可以非常方便的读入与写入到流,这个特性就方便了组件中的属性信息能非常方便的记录到窗体资源文件。

TComponent这个就是所有Delphi组件的基类,所有想要注册到IDE直接进行可视化设计的对象库,都要从这个类继承。

Delphi安装卸载OCX控件的方法

Delphi安装卸载OCX控件的方法

/kf/201112/115123.html打开Delphi,关闭所有项目。

1. 安装OCX控件点击菜单项:Component -> Import ActiveX Control…进入如下界面:然后点击按钮“Add..”,弹出如下界面选择Ocx文件:注意:如果是DLL文件,则可能不会出现,需要将文件类型切换为所有。

选中目标文件后,该Ocx或者DLL对应的OCX控件会自动添加到列表中。

点击按钮“Install…”,弹出如下对话框,提示将控件安装到哪个控件包,系统默认是dclusr.dpk,即Delphi 默认的用户自定义控件包,选择默认值即可。

点击按钮“OK”后,即弹出如下dclusr.dpk的编辑界面,通常系统还会提示是否继续编译dclusr.dpk,选择“Yes”。

如果正常编译完成,则Ocx控件会被添加到Delphi IDE 控件栏的ActiveX页面。

1. 卸载OCX控件点击菜单项:Component -> Import ActiveX Control…界面同第1步,此略。

选中需要移除的OCX控件后,点击按钮“Remove”,系统会弹出确认对话框,点击“Yes”后,即可以移除该OCX在系统中的注册信息,理论上,将该控件拖放到窗体中会出现异常信息。

但是在用户的自定义控件包中尚存留文件,需要在空白的Delphi环境中打开自定义控件包文件,该文件通常在如下路径可以找到:c:\borland\delphi6\LIB\dclusr.dpk打开该文件后,会弹出如下界面:在上述界面中,选中需要移除的文件(可能不止一个)并点击按钮“Remove”。

然后点击按钮“Compile”对该控件包重新编译。

如果编译正常的话,会提示该控件已经移除,且会从Delphi IDE控件栏的ActiveX页面中消失。

【完】摘自 xt_chaoji的专栏。

delphi教程

delphi教程

Delphi教程什么是Delphi?Delphi是一种编程语言和集成开发环境(IDE),用于开发跨平台的Windows应用程序。

它是由Embarcadero Technologies公司开发的,首次发布于1995年。

Delphi基于Object Pascal语言,具有强大的开发工具和丰富的类库,使开发人员能够快速构建可靠和强大的应用程序。

Delphi的特点Delphi具有许多令人称赞的特点,这些特点使其成为许多开发人员首选的开发工具。

1. 面向对象编程(OOP)Delphi是一个面向对象的编程语言,支持封装、继承和多态等OOP概念。

面向对象编程使得代码更具可重用性和可维护性,开发人员可以更加高效地编写和组织代码。

2. 可视化开发Delphi使用可视化开发工具,如窗体设计器和组件库,使开发人员能够通过拖放和设置属性的方式创建用户界面。

这种可视化开发方式对于快速原型设计和用户界面调整非常有帮助。

3. 强大的集成开发环境(IDE)Delphi提供了一套强大的集成开发环境,其中包括代码编辑器、调试器、编译器、版本控制和用户界面设计工具等。

这些工具使开发人员能够在一个集成的环境中完成所有开发任务,提高了开发效率。

4. 多平台支持Delphi支持跨平台开发,可以在Windows操作系统上开发应用程序,也可以将应用程序移植到其他平台,如iOS和Android。

这种多平台支持使得开发人员可以更好地达到更广泛的用户群体。

Delphi的应用领域Delphi适用于各种类型的应用程序开发,从桌面应用程序到互联网应用程序,都可以使用Delphi进行开发。

1. 桌面应用程序Delphi可以用于开发各种类型的桌面应用程序,如图形用户界面(GUI)应用程序、数据库应用程序、科学计算应用程序等。

它提供了丰富的组件库和可视化开发工具,使开发人员能够轻松构建功能强大的桌面应用程序。

2. 互联网应用程序Delphi也可以用于开发互联网、Web和移动应用程序。

delphi openpicturedialog1用法

delphi openpicturedialog1用法

delphi openpicturedialog1用法
Delphi里的OpenPictureDialog1组件是一个可视化的对话框组件,用于打开图片文件。

它可以非常方便地帮助开发者在程序中实现打开图片文件的功能。

使用OpenPictureDialog1组件的方法非常简单,只需按照以下步骤即可:
1. 添加OpenPictureDialog1组件
打开Delphi的窗体设计器,双击组件面板中的OpenPictureDialog1组件,将其添加到窗体上。

2. 设计OpenPictureDialog1组件的属性
在属性面板中,可以对OpenPictureDialog1组件的属性进行设置。

例如,可以设置对话框的标题、初始路径、过滤器等。

3. 编写代码
在程序中需要使用OpenPictureDialog1组件时,可以在代码中使用以下语句:
if OpenPictureDialog1.Execute then
begin
//打开文件成功
end;
这条语句表示如果用户选择了一个文件并点击了“确定”按钮,则返回True,程序就可以执行相应的操作。

4. 获取文件名
在执行OpenPictureDialog1.Execute后,可以通过以下语句获取用户选择的文件名:
OpenPictureDialog1.FileName;
这条语句返回用户选择的文件的完整路径和文件名,可以将其用于程序中的操作。

总之,Delphi OpenPictureDialog1组件是一个非常实用的工具,可以帮助开发者快速实现打开图片文件的功能。

掌握其使用方法可以更加方便地开发出高效的应用程序。

delphi开发OCX

delphi开发OCX
那么会在全局区定义 个线程入口函数.
然后,定义线程接口,每个线程类都继承自这个接口.
然后创建线程的时候,把Self当作参数传入BeginThread, 在线程入口函数里面,再采用QueryInterface 或者 直接强制类型转换(必须是类).
然后调用线程接口作为执行内容.(当然这个内容最好对自身的任何值都只是采用读取方式,要写就问题大了)
为了实现DLL线程这个东西,我所有线程同步的方法都用过了,没有一个成功,包括设置优先权为 ABOVE_NORMAL (并且是设置成功的)
可以有人告诉我是怎么一个回事么?
线程是DLL自身内部的.
向外伸出线程执行内容接口.使用方法就是外面向里面赋上执行函数入口,然后DLL里面进行创建线程并调用.
而线程是在COM内部创建运行的.
现在一个最大的问题就是:
对于普通的PAS单元.
我使用 WaitForSingleObjec(BeginThread(XXXX)) 这样,主线程是不会锁死的.
此两种对象既可以是进程内的也可以是进程外的,所以Appilaction和Library的项目都可以添加。
如果你的COM组件是可视控件,可以选择ActiveX Control,它可以直接将Delphi中的控件包装为ActiveX控件,因此你可以把你要做的东西当成Delphi组件来设计,然后包装一下就可以了。
但是如果我在DLL单元里面伸出一个接口 InsertThread
procedure InsertThread
begin
WaitForSingleObjec(BeginThread(XXXX))
end
然后在主线程里面写上
procedure InsertThread external &#39;XXX.dll&#39;

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

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

Delphi编写ActiveX控件(OCX控件)的知识和样例(有详细步骤)⼀、ActiveX应⽤情况简介:ActiveX控件也就是⼀般所说的OCX控件,它是 ActiveX技术的⼀部分。

ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32位应⽤编程接⼝(Win32 API)和组件对象模型的⼀系列扩充和增强,⽬标是把计算机桌⾯环境与因特⽹环境集成起来,同时保护在Windows技术中现有的开发投资。

微软的 ActiveX技术根本上就是修改过的OCX技术,使它能够跨越Internet,主要是使⽤WWW来传递控件。

ActiveX控件可以被集成到很多⽀持ActiveX的应⽤当中去,或者直接⽤来扩展应⽤的功能,这些⽀持ActiveX的应⽤包括C++ Builder、Delphi、Visual dBASE、 Visual Basic、Visual C++、Internet Explorer、Netscape Navigator等。

ActiveX控件还可以使⽤在因特⽹上,在⽹页上使⽤它来发布信息、处理与⽤户的交互,但是需要使⽤⽀持ActiveX的浏览器才能阅读这些⽹页。

⽬前已经开发出来的ActiveX控件越来越多,由于ActiveX控件具有很好的特性,我们可以在编程的时候选择使⽤合适的控件来加快⾃⼰的应⽤开发。

可以不夸张地说,ActiveX控件是Windows平台编程必不可少的法宝。

使⽤ActiveX控件是相对⽐较简单的。

但是,开发ActiveX控件并不是⼀件简单的事情,必须要熟悉⽽不只是了解ActiveX技术才能开发出好的ActiveX控件。

⽽COM、OLE等ActiveX技术对于⼀般的程序员来说,是⽐较复杂难懂的。

所以,ActiveX控件的开发者⼀般都是“⽼鸟”级别的程序员。

但是如果您有了Inprise公司的Borland Delphi,那⼜另当别论了。

Delphi作为Windows平台上最优秀的程序开发⼯具之⼀,为ActiveX控件的开发提供了强有⼒的⽀持,让您轻松地开发ActiveX控件。

delphi组件开发详解

delphi组件开发详解

delphi组件开发详解Delphi除了支持使用可视化部件所见即所得地建立应用程序外,还支持为开发应用而设计自己的部件。

在本章中将阐述如何为Delphi应用程序编写部件。

这一章将达到两个目的:●教你如何自定义部件●使你的部件成为Delphi环境的有机组合部分19.1Delphi部件原理19.1.1什么是部件部件是Delphi应用程序的程序构件。

尽管大多数部件代表用户界面的可见元素,但部件也可以是程序中的不可见元素,如数据库部件。

为弄清什么是部件可以从三个方面来考察它:功能定义、技术定义和经验定义。

1.部件的功能定义从最终用户角度,部件是在Component Palette上选择的,并在窗体设计窗口和代码窗口中操作的元素。

从部件编写者角度,部件是代码中的对象。

在编写部件之前,你应用相当熟悉已有的Delphi部件,这样才能使你的部件适合用户的需要。

编写部件的目标之一是使部件尽可能的类似其它部件。

2.部件的技术定义从最简单的角度看,部件是任何从TComponent继承的对象。

TComponent定义了所有部件必须要的、最基本的行为。

例如,出现在Component Palette上和在窗体设计窗口中编辑的功能。

但是TComponent并不知如何处理你的部件的具体功能,因此,你必须自己描述它。

3.部件编写者自己的定义。

在实际编程中,部件是能插入Delphi开发环境的任何元素。

它可能具有程序的各种复杂性。

简而言之,只要能融入部件框架,部件就是你用代码编写的一切。

部件定义只是接口描述,本章将详细阐述部件框架,说明部件的有限性,正如说明编程的有限性。

本章不Delphi i 准备教你用所给语言编写每一种部件,只能告诉编定代码的方法和怎样使部件融入Delph 环境。

19.1.2编写部件的不同之处在Delphi环境中建立部件和在应用程序中使用部件有三个重要差别:●编写部件的过程是非可视化的●编写部件需要更深入的关于对象的知识●编写部件需要遵循更多的规则1.编写部件是非可视化的编写部件与建立Delphi应用最明显的区别是部件编写完全以代码的形式进行,即非可视化的。

Delphi7的开发调试技巧及快捷键.

Delphi7的开发调试技巧及快捷键.

(转 Delphi7的开发调试技巧及快捷键Delphi 开发的调试技巧1、设置调试选项Delphi 主菜单。

【 Project 】 ->【 Options 】 , 或单击工程管理器中的【 Project Options 】按钮。

显示 Project Options,选择 Complier<1>选中 Debug Information :把调试信息嵌入到 DCU 单元文件,会加大编译后的DCU 文件,但不会影响最后生成的 exe 的大小和执行速度。

同时激活【 Search 】菜单中的【 Find Error 】命令。

当文件中包含调试信息并得到一个运行时错误 (run-time error, 记录下 Delphi 提供的 16进制地址,在【 Search 】->【 Find Error 】中输入, Delphi 将重新编译程序,并停留在产生错误的命令行。

<2>Local symbols:决定调试器能否看到在 Implementation 中定义的局部变量。

<3>Reference infoj选项 /Definition Only选项是否产生应用程序中对象标识符的引用信息。

信息和对象代码存在 dcu 文件中, 可以使用对象浏览器查看。

如果 Definition Only 选项同时选中,编译器将生成标识符定义位置的信息,能够激活对象浏览器的 Refenrence 页。

如果不选, Dcu 文件更小。

编辑器命令{$D} Debug Information{$L} Local Information{$Y} Symbol Information{$C} Assertions2、使用内部调试器<1> 命令行参数在【 Run 】->【 Parameters 】中设置<2>断点条件断点使源代码断点只有在满足某个条件时才有效。

在【 View 】->[Debug windows]->【 BreakPoints 】打开“BreakPoint List”对话框, 右击断点,从弹出菜单中选择属性。

delphi之如何快速开发原生ActiveX控件

delphi之如何快速开发原生ActiveX控件

重温delphi之:如何快速开发原生ActiveX控件2009-12-16来源:作者:菩提树下…点击:次ActiveX技术虽然是一项古老的技术,但是却有着广泛的应用,支付宝的密码输入控件,各大银行的密码输入控件,网页聊天室中的截屏功能,网页播放器中的p2p播放...甚至Flash,Silverlight等等,在IE中都表现为ActiveX。

虽然c#也能开发"用于网页的com应用",能达到类似ActiveX的效果(可参见c#中开发ActiveX的学习笔记),但是有一个要命的问题是必须得安装几百M的.net framework框架,如果仅仅为了安全的输入一个密码,而要用户下载几百M的安装程序,这是很多人不能接受的,delphi做为win32下的原生开发工具,能很好的支持微软各种"古老"的经典技术。

(再做点小广告:delphi的kyrix版本还能编译跨平台的应用哦!)ok,开工吧:开发工具:推荐用delphi 2010(d7也可以,不过添加属性,方法等过程要手动,稍微麻烦点)1.启用delphi2010-->File->New->Other-->Active Library2.项目命名为MyActiveX3.File-->Save All 全部保存实际上这样就能编译了,不过只是空的dll 4.File-->New-->Other-->Active Form改名为MyForm将对应的单元文件,保存为UMyForm.pas5.打开MyAcitveX.ridl文件,切换到design视图,选中IMyForm接口,右击New-->Property 添加一个属性Msg将Msg属性的Type改为BSTR 即WideString类型完了之后,点击工具栏中的Refresh Implementation(即上图中工具栏中圈起来的部分)--这一步很重要,点击之后,它将自动生成属性Msg对应的声明和实现代码模板6.打开UMyForm.pas--即ActiveForm对应的单元,找到Set_Msg以及Get_Msg 的实现部分,补充代码如下:function TMyForm.Get_Msg: WideString;beginresult:=_msg;end;procedure TMyForm.Set_Msg(const Value: WideString);begin_msg := value;end;当然TMyForm的private部分,得先加一个私有成员typeTMyForm = class(TActiveForm, IMyForm)private{ Private declarations }_msg:WideString;...这样我们就为即将生成的ActiveX控件,添加了一个字符串类型的属性Msg,下面来测试一下:7.编译项目,会生成一个MyActiveX.ocx,在运行栏里输入regsvr32C:\Users\jimmy.yang\Desktop\delphi_activex\MyActiveX\MyActiveX.ocx注:这里ocx的路径,请各位根据自己的实际路径修改这样就完成了ocx的注册。

Delphi二次开发CorelDRAW

Delphi二次开发CorelDRAW

Delphi⼆次开发CorelDRAW我们⾸先通过⼀个简单的程序例⼦来看⼀下Delphi对CorelDRAW⼆次开发有什么样的效果。

本程序实现CorelDRAW程序的打开和关闭。

1.1 Delphi与CorelDRAW连接在程序与CorelDRAW进⾏控制的时候,必须要通过⼀个桥梁,⽽这个桥梁需要通过我们的代码来实现。

只有实现了程序与CorelDRAW之间的通讯,才能进⾏下⼀步的⼯作。

再次我们为您提供⼀个Delphi连接CorelDRAW的样板代码,每次进⾏开发的时候您可以通过修改此代码来实现与CorelDRAW之间的连接。

新建⼀个⼯程,然后向新建的⼯程中加⼊CorelDRAW类库,步骤如下所⽰(这⾥以Delphi 2009 为例,其它类似):1.选择菜单"Component"—"Import Component",在对话框中选择Import a Type Component单选按钮,单击Next按钮;2.在新跳出的对话框中单击Add(添加)按钮,然后找到CorelDRAW的类型库⽂件。

CorelDRAW类型库⽂件有版本区分(这⾥以CorelDRAW X4 为例),说明⽂字为Corel-Vector Graphics Core XX.0 Type Library,名称为VGCoreAuto.tlb,这个⽂件保存在“C:\Program Files\Corel\Corel Graphics XX\Programs”⽬录下。

(C:为默认安装盘,XX为CorelDRAW的版本号),点击Next按钮;3.保持默认值,点击Next,选择“Add Unit to Project1.dproj project”,单击Finish按钮完成添加。

保存⼯程到⽂件夹。

4.如下图所⽰,这样我们就在Delphi中成功的添加了CorelDRAW类库。

5.在窗体上添加两个按钮控件,分别为两个按钮命名为打开和关闭,在代码引⽤部分添加⼀下引⽤:VGCore_TLB。

Delphi中MsComm控件的安装使用

Delphi中MsComm控件的安装使用

Delphi中MsComm控件的安装使⽤Delphi中MsComm控件的安装使⽤ Delphi 具有功能强⼤、简便易⽤和代码执⾏速度快等特点,是全球公认的快速应⽤开发⼯具技术的先驱者。

但是在对串⼝通信的控制上Delphi的帮助⽂档和其他书籍中很少提及,这恰恰⼜是在开发应⽤系统时会经常遇到的问题。

⽤过VB的程序员都知道 VB的MSComm通信控件具有丰富的与串⼝通信密切相关的属性及事件,提供了⼀系列标准通信命令的接⼝,可以⽤它创建全双⼯的、事件驱动的、⾼效实⽤的通信程序。

在这⾥就介绍⼀下如何把MSComm这个ActiveX控件加⼊到Delphi中,充分发挥出⼆者的优越性。

⾸先在VB安装⽬录下找到下列三个⽂件: Mscomm.reg, Mscomm32.ocx,Mscomm32.dep , 把这三个⽂件拷贝到Windows的system⽬录下(注意WinNT下是System32)。

然后⽤Windows下的注册⼯具regsvr32注册该OCX控件,例如: Regsvr32 … system⽬录\Mscomm32.ocx . 注册成功后⽤记事本打开Mscomm.reg,可以看到类似下⾯的内容: [HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905]@ = "kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun",为了能正确使⽤该控件,需要修改注册表的信息,在注册表的在HKEY_CLASSES_ROOT\Licenses下建⼀主键:4250E830-6AC2-11cf-8ADB-00AA00C00905,主键的内容为kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun. ⾄此已经完成了控件的系统注册⼯作,剩下的⼯作是在Delphi中导⼊这个ActiveX控件,进⼊Delphi环境在Component菜单下选 Import ActiveX Control,这时在列表中可以看到Microsoft Comm Control 6.0选项, 选中这个选项点击Install按钮,完成安装。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Delphi快速开发OCX步骤
首先要弄明白你要写的OC X是用在客户端还是用在服务器端
假如用在客户端:
1、创建
打开delphi 7,选择菜单“new”->“other”->“activex”->“active form”->输入项目名称,系统自动给你创建了3个文件,一个是项目文件,一个是form的单元文件,还有一个后缀带TLB 的文件。

这三个文件中的你只需要更改form的单元文件,项目文件一般不需要写什么,TLB文件有系统自动维护。

2、增加接口函数
所谓接口函数就是调用OCX的程序可以直接调用的函数,如果你要写的函数不提供外部函数可以按常规声明就可以。

但要声明接口函数则必须按步骤声明,有两种途径,
其一:选择form单元文件,然后点击“edit”->“add to interface”,弹出一个对话框,输入要声明的函数,如:function fun:integer;
其二:选择form单位文件,然后点击“view”->“Type Library”,弹出一个对话框,然后点击工具栏中“add a interface”可以增加函数或过程。

说明:在这里注意几个地方,
第一,一定要选form文件才可以,否则相应的菜单都是不可用的;
第二、声明函数或过程的参数类型要注意string->BSTR(第二种途径)或WideString(第一种途径)。

增加属性也函数类同。

3、调试
我是用html调试的,所以可用在delphi种配置run的参数“run”->“parametes”,弹出一对话框,在“host application”中输入C:\Program Files\Internet Explorer\IEXPLORE.EXE,在“parametes”中http://192.168.6.9/my.htm,这样就可以调试delphi代码了
4、发布
在没有build前,可以“project”->“web deployment”中配置(主要输入ocx的地址和web 服务器的url),然后可以“web deploy”发布,其实就是生成了一个htm文件,不过该文件里包含了调用方法而已。

但是delphi好像至运行执行一次,发布后这两个菜单就不可用
了,甚至刚开始我不知道,直接编译了,编译后该菜单也不可用了。

说明:如果没有用“web deploy”发布,而想在网页中调用的,就要知道该ocx的GUID,可以在TLB文件中找,CLASS_XXX后面的就是,这一点也需要注意。

5、数字签名
要想网页能够顺利使用ocx,就需要数字签名,否则IE直接就给干掉了,当然IE安全级调低除外。

关于生成测试数字签名的方法,网上很多。

我想要说得是,测试数字证书只能用在win2000系统,用在XP,特别是打了补丁的XP,根本不行。

另外也可以参考《使用Delphi快速开发ActiveX控件》这篇文章
如果用在服务器端:
其实应该是COM组件了吧,asp的调用方式是<% set obj=Server.CreateObject("DelphiCom.Test2") %> 1、创建打开delphi 7,选择菜单“new”->“other”->“activex”->“active libray”生成一个项目,然后再“new”->“other”->“activex”->“automation object”,然后参照上面增加接口函数,就可以。

不过编译出来是个dll,但是是可以注册的dll。

“automation object”也可以换成“com object”,但两者是有区别的,具体可以网上查询。

相关文档
最新文档