delphi中ActiveX 和 Web
http://book.77169.com/data/web5302/20050228/20050228__3692503.html
ActiveX 和 Web
在Windows 操作系统下,有一个重要的机制,就是OLE ,就是可以让某
个应用程序(OLE Controller)访问其它应用程序(OLE Server)所提供的
功能,这样做的好处是,如果已经有了完成某项功能的程序,你就不必再为
某项功能编写特定的应用程序,可以直接通过OLE 调用。
一、 制作用Web 调用的ActiveX
首先设置一个虚拟目录,定名为Delphi
1)进入Delphi,Close all
2)New -> Other -> ActiveX -> ActiveX Form ->Name: MyActiveX
OK
3)出现一个普通的Form界面,放入
TButton
TListBox
TEdit
三个控件,设计目标是,点Button后ListBox添加一个Edit的内容。
4)Save all 到虚拟目录的 ActiveX\Ac2\ 子目录下。
5)双击Button,在Button1Click事件程序下写:
ListBox1.items.add(edit1.text);
6)这就完成了,保存。
7)Porject ->Build All 编译
8)Porject -〉Web Deployment Options 设置分发参数
第一项:OCX保存的目录 (虚拟目录\ActiveX\ac2\)
第二项:OCX保存在哪个相对路径中
(http://127.0.0.1/delphi/ActiveX/ac2/)
第三项:Delphi产生的HTML 保存路径(虚拟目录\ActiveX\ac2\)
Ok
9)产生嵌入ActiveXForm的HTML文件
Porject -〉Web Deploy
现在保存这个工程然后退出
观察效果
打开IE浏览器, 把网址写为:http://127.0.0.1/delphi/activex/ac2/
就可以看到下面的文件列表:
[To Parent Directory]
2000年5月27日 9:10 750 MyActiveImpl1.~dfm
2000年5月27日 9:11 9160 MyActiveImpl1.~pas
2000年5月27日 9:31 16936 MyActiveImpl1.dcu
2000年5月27日 9:16 51 MyActiveImpl1.ddp
2000年5月27日 9:14 778 MyActiveImpl1.dfm
2000年5月27日 9:15 9307 MyActiveImpl1.pas
2000年5月27日 9:11 334 MyActiveProj1.~dpr
2000年5月27日 9:11 6424 MyActiveProj1.~tlb
2000年5月27日 9:27 386 MyActiveProj1.cfg
2000年5月27日 9:27 1436 MyActiveProj1.dof
2000年5月27日 9:11 334 MyActiveProj1.dpr
2000年5月27日 9:29 382 MyActiveProj1.htm
2000年5月27日 9:31 477696 MyActiveProj1.ocx
2000年5月27日 9:27 1836 MyActiveProj1.res
2000年5月27日 9:11 6424 MyActiveProj1.tlb
2000年5月27日 9:11 15377 MyActiveProj1_TLB.~pas
2000年5月27日 9:31 11952 MyActiv
相关文档:
在网上看到很多人都在为Delphi是否支持C++/Java中的静态变量及静态方法的功能而困扰,其实这在Delphi中是很简单的.
静态方法就是使用Class Function. 静态变量则使用单元局部变量来实现. 代码如下:
//=========================================
// StaticVarTestU - 定义了可以计数的类,通过类方法即可访问此类的对象数 ......
在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,我们可以直接使用它们来完成MD5的签名算法。而不需要再去找其它的
DLL或是Pas了。
在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到MD5的实现。
示例代码
procedure TForm1.Button1Click(Sen ......
Delphi 中 FindWindow 和 FindWindowEx 的语法和用法
FindWindow(
lpClassName, {窗口的类名}
lpWindowName: PChar {窗口的标题}
): HWND; {返回窗口的句柄; 失败返回 0}
//FindWin ......
第一种:需要引用Windows单元
ShowMessage(IntToStr(GetSystemMetrics(SM_CYSCREEN)-GetSystemMetrics(SM_CYFULLSCREEN)-GetSystemMetrics(SM_CYCAPTION)));
第二种:需要引用Windows单元
function GetSystemTaskBarHeight:Integer;
var
R:TRect;
begin
SystemParametersInfo(SPI_GETWORKAREA,0,@R,0);
Resul ......