⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dde函数.txt

📁 Vfp 文档 一些经典编程文章 可供初学者学习编程时使用
💻 TXT
📖 第 1 页 / 共 3 页
字号:
指定是创建、释放或更改一个服务名,还是返回服务名的信息。下表列出了可用 cOption 指定的选项、选项的默认值以及对每个选项的说明。
选项            默认值             说明
DEFINE
创建新的服务名
ELEASE
释放已有的服务名
DVISE
.F.
启用或禁止有关改变项名的报告
EXECUTE
.F.
启用或禁止命令的执行
POKE
.F.
启用或禁止客户向服务的发送
REQUEST
.T.
启用或禁止对服务的请求FORMA
CF_TEXT
规定数据格式
TS
XT
DEFINE
创建一个新的服务名。例如,下面的命令创建服务名 myservice:glNewService = DDESetService('myservice', 'DEFINE')
RELEASE
释放一个已有的服务名,从而释放系统资源。当服务名释放后,这个服务的所有主题名也跟着被释放。
下面的命令释放前一个例子的服务名
glRelease = DDESetService('myservice', 'RELEASE')
要释放默认的 Visual FoxPro 服务,可执行下面这条命令:
glRelFox = DDESetService('FoxPro', 'RELEASE')
ADVISE
当一个项中的数据改变时,指定是否通知客户,或者返回服务名的当前建议状态。有关向客户提供建议的其他信息,请参阅 DDEAdvise( )。
要启用客户通知,可指定 lExpression 为“真”(.T.);将 lExpression 指定为“假”(.F.)可禁止客户通知。
要返回服务名的当前客户通知状态,省略 lExpression 即可。如果已经启用了服务名的客户通知,则 DDESetService()返回“真”;如果已禁止客户机通知,则返回“假”。
EXECUTE
允许启用或禁止向一个服务名的命令请求,或确定服务名的当前执行状态。要启用客户执行命令的请求,可以指定 lExpression 为“真”(.T.);要禁止客户执行命令的请求,则可以指定 lExpression 为“假”(.F.)。“假”(.F.)为默认值。
要返回服务名的当前命令执行状态,省略 lExpression 即可。如果客户对服务的命令执行请求已启用,则 DDESetService()返回“真”;否则返回“假”。
下面的命令启用服务名 myservice 的命令执行,并禁止客户应用程序对这个服务名的数据请求,然后显示 myservice 的当前命令执行状态:
glExecute = DDESetService('myservice', 'EXECUTE', .T.)
glRequest = DDESetService('myservice', 'REQUEST', .F.)
? DDESetService('myservice', 'EXECUTE')
POKE
允许启用或禁止对服务名的发送请求,或确定服务名的当前发送状态。有关向服务程序或客户发送数据的详细信息,请参阅 DDEPoke( )。
要启用客户发送请求,可以将 lExpression 指定为“真”(.T.);将 lExpression 指定为“假”(.F.),则可以禁止客户发送请求。“假”(.F.) 是默认值。
要返回服务名的当前发送状态,省略 lExpression 即可。如果启用了服务名的发送请求,则 DDESetService()返回“真”,否则返回“假”。
REQUEST
可以用 REQUEST 启用或者禁止对服务名的用户请求,或返回对服务名的当前请求状态。
要启用对服务名的客户请求,需将 lExpression 指定为“真”(.T.);将 lExpression 指定为“假”(.F.),则可以禁止对服务名的客户请求。“真”(.T.) 是默认值。
要想返回服务名的当前请求状态,省略 lExpression 即可。如果启用了服务名的发送请求,则 DDESetService()返回“真”,否则返回“假”。
下面的命令禁止从客户应用程序对服务名 myservice 的请求,并显示 myservice 的当前请求状态:
glRequest = DDESetService('myservice', 'REQUEST', .F.)
? DDESetService('myservice', 'REQUEST')
FORMATS [cDataFormat]
指定服务名支持的数据格式,没有用 cDataFormat 指定格式的服务程序请求会被拒绝。当指定数据格式时,请用逗号分隔列表中的格式。例如:
=DDESetService('myservice', 'FORMATS', 'CF_TEXT, CF_SYLK'

)如果省略 cDataFormat,则只支持 CF_TEXT 格式。
LExpression
指定 REQUEST、EXECUTE、POKE 或 ADVISE 选项。将 lExpression 指定为“真”(.T.) 可以启用一个选项,指定为“假”(.F.) 则可以禁止一个选项。
说明
Visual FoxPro 可以作为一个动态数据交换 (DDE) 服务程序向 Microsoft Windows 的客户应用程序发送数据,DDESetService()用来创建、释放或更改 Visual FoxPro 中的服务名和设置。每个服务名可以有多个由 DDESetSrvice()创建的主题名,客户应用程序向 DDE 主题名请求数据。
如果成功地创建、释放或修改了服务名,则 DDESetService()返回“真”(.T.);如果服务名不能被创建、释放或修改,则 DDESetService()返回“假”(.F.)。DDESetservice()也能返回有关服务名的信息。Visual FoxPro 有默认的服务名 VisualFoxPro,Visual FoxPro 服务名有一个称为 System 的主题名。下表列出了 System 主题支持的所有项名。
项名                项
Topics        可用的主题名列表
Formats       服务名支持格式列表
Status        繁忙或等待
SysItems      项名列表
可以使用 DDESetTopic()修改 Visual FoxPro 服务名或释放服务名。有关 VisualFxPro 服务名操作的详细内容,请参阅 DDESetTopic()选项。
DDESetTopic()
函数在动态数据交换 (DDE) 会话中,创建或释放一个服务名的主题名。
语法
DDESetTopic(cServiceName, cTopicName [, cUDFName])
返值类型
    逻辑值
参数描述
cServiceName
指定服务名。服务名可用 DDESetService()创建。
CTopicName
指定要创建或释放的主题名。如果包括 cUDFName,则 DDESetTopic()创建主题名 cTopicName;如果省略 cUDFName,则释放主题名 cTopicName。若cTopicName 是一个空字符串,对任何没有明确声明的主题名,执行cUDFName 指定的用户自定义函数。
CUDFName
在客户应用程序向主题名发出请求时,指定要执行的用户自定义函数。如果省略了cUDFName,则从服务名中释放主题名 cTopicName。
参数           内容
Channel Number     客户通道号
Action         ADVISE,EXECUTE,INITIATE,POKE,REQUEST 或
               TERMINATE
Item           项名。例如,R1C1 表示一个 Microsoft Excel 工作表单元
Data           来源于客户的数据
Format         数据格式。例如,CF_TEXT
Advise Status    链接类型(0 = 人工,2 = 报告或自动)
Item、Data 和 Advise Status 参数值取决于 Action 参数,下表列出了 Action 参数值以及包含在 Item、Data 和 Advise Status 参数中的值。短横线 ( - ) 表明参数值是个空字符串。
Action 值        Item 值       Data 值          Advise status 值
INITIATEYG                  主题名 
TERMINATE
POKE            项名        新数据
REQUEST        项名
EXECUTE                    新数据
ADVISE          项名        链接类型
如果用户自定义函数成功地处理了客户请求,则用户自定义函数返回“真”(.T.);如果用户自定义函数不能处理请求或发生错误,则用户自定义函数应返回“假”(.F.)。如果Action 参数值为 INITIATE 时返回“假”,则拒绝客户主题名的请求;如果在 Action参数值是 POKE、REQUEST 或 EXECUTE 时返回“假”,则忽略请求;如果这个参数值为 ADVISE 时返回“假”,则拒绝客户报告或自动链接的请求。
说明
创建主题名后,任何对主题名的客户请求都会使 Visual FoxPro 执行 cUDFName 指定的用户自定义函数。向用户自定义函数传递的一组参数值是由客户请求决定的。用户自定义函数的返回值由 DDEPoke()函数传递给客户,其返回值是一个逻辑值,该值表明主题能否提供客户请求的服务。
如果成功地创建或释放主题名,则 DDESetTopic()返回“真”(.T.);如果不能创建或释放主题名,则返回“假”(.F.)。使用 DDELastError()可确定不能创建或释放主题名的原因。
示例
以下示例创建了一个名为 myserver 的基本示例服务程序,此程序支持来自客户应用程序的 Visual FoxPro 命令的执行。客户应用程序通过 DO 主题向 myserver 发出请求。通过使用 DO 主题和宏替换执行客户的命令。
*** Set Visua  lFoxPro up as a DDE server ***
= DDESetService('myserver', 'DEFINE')
= DDESetService('myserver', 'EXECUTE', .T.)
= DDESetTopic('myserver', 'DO', 'DOTOPIC')
WAIT WINDOW 'Server portion service setup ... ' NOWAIT
*** Use VisualFoxPro as a DDE client ***
gnChannel = DDEInitiate('myserver','DO')
=DDEExecute(gnChannel, 'WAIT WINDOW "Command Executed ... "') 
=DDETerminate(gnChannel)
PROCEDURE dotopic
PARAMETERS gnChannel, gcAction, gcItem, gData, gcFormat, gnAdviseglResult = .F.
*** It's necessary to return .T. from an   ***
***INITIATE action or no connection is made ***
IF gcAction = 'INITIATE'
glResult = .T.
ENDIF
IF gcAction = 'EXECUTE'
&gDatagl
Result = .T.
ENDIF
IF gcAction = 'TERMINATE'
WAIT WINDOW 'Goodbye ... ' NOWAIT
glResult = .T.
ENDIF
RETURN 
glResult在运行此示例程序之后,您已经建立了 Visual FoxPro 服务,其他应用程序可以访问此服务。如果有 Microsoft Excel,您可以运行以下 Excel 宏:
gnMyChan = INITIATE("myserver","DO")
=EXECUTE(MyChan,"WAIT WINDOW 'Hi, this is EXCEL speaking'")
=RETURN( )

DDETerminate()函数
关闭用 DDEInitiate()建立的动态数据交换 (DDE) 通道。
语法
DDETerminate(nChannelNumber | cServiceName)
返值类型
逻辑值
参数描述
nChannelNumber
指定要关闭的通道号。
CServiceName
指定要关闭的服务名。
说明
如果通道关闭成功,则 DDETerminate()返回“真”(.T.);如果通道不能关闭,DDETerminate()返回“假”(.F.)。
不再需要通道时,应将它们关闭,节约系统资源。
如果通过选择“文件”菜单中的“退出”来退出 Visual FoxPro,或者通过命令窗口或从程序内执行 QUIT 退出 Visual FoxPro,那么通道将自动关闭。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -