现在的位置: 首页 > 综合 > 正文

使用非常方便的 Delphi 和网页交互 VCL

2013年08月01日 ⁄ 综合 ⁄ 共 1181字 ⁄ 字号 评论关闭

2010/8/1更新:

实际项目中使用发现如果页面大量使用了 ajax,这个解决方案还存在很错问题,工作起来非常不稳定。慎用!!!

 

下载地址:

http://download.csdn.net/source/1913671

 

我们目前的项目程序普遍使用

Delphi

客户端内嵌

Internet Explorer

的方式实现,在开发过程中,由于不同的页面经常需要做一些特殊的处理,从而经常涉及到网页和客户端交互的过程。

 

在以往的项目中,我们大都通过在

Delphi

中捕获浏览器某个对象的事件的方式来解决,随着需要交互的地方越来越多,客户端的代码也由于增加了大量的代码变得难以维护,同时这些代码页不具有通用性,一旦换到另一个项目,绝大部分的事件处理代码随之废弃。而从网页向客户端传递数据我们以前大都采用

Cookie

的方式,这种方式一来由于

Cookie

本身存在不安全性,另外最大的缺点就是无法实时与客户端进行通信。

 

基于以上原因,封装了一个 VCL,通过简单的方式,实现

Web page

和客户端之间的双向实时通信。此VCL 具有以下特点:


1.        

最少代码,应用程序只需在窗口中放入相应的

VCL

控件,调用相应的方法发送命令,

如果需要接收命令,征订相应的事件就可以了

2.        

VCL

会自动在网页上生成相应的函数,网页如需向应用程序发送命令,只要调用相应的函数就可以了

3.        

具体的命令和命令的参数由网页和应用程序之间自由约定,

VCL

本身不做任何限制

 

原理非常简单,有兴趣的自己看一下代码,总共也就200行。


使用方法

 

1.        

首先在

Delphi

中安装

TWebInteractive VCL

安装后在

Delphi

面板会生成

iFLYTEK VCL

一栏,目前只有一个

WebInteractive

组件。

      

      

2.        

Form

设计面板上添加

TWebInteractive

对象,并设置属性和事件



此处

WebBrowser

TEmbeddedWB

对象,不是

Delphi

自带的

TWebBrowser

3.        

调用方法,在

Delphi

中如需要向网页发送命令,可通过

TWebInteractive

SendClientCommand

方法,示例:

wbntrctv1.SendClientCommand('call', 'test(''param1'',
''param2'')');

目前仅支持

call

命令,用来调用网页中的

javascript

函数,对应的参数就是具体函数的调用表达式。

4.        

在网页中如需要想客户端发送命令,可直接调用

SendClientCommand(

命令,参数

)

,具体命令及参数有客户端在

OnGetClientCommand

中进行处理。

 

转载请注明出处:http://blog.csdn.net/jh_zzz


抱歉!评论已关闭.