![]() |
![]() 综合要闻 企业&人.com 产品与技术 网络与通信 市场与渠道 99全文检索 网络世界 微电脑世界 IT经理世界 CCW展览 信息服务中心 家用电脑世界 电子与信息化 今日电子 中国新闻科技 电子知识产权 电子产品世界 Linux园地 友情链接 冬涛谈法 Dongtao on Law |
用PowerBuilder 5.0 开 发DDE 应 用 程 序请 作 者 和 我 们 联 系:zhou_haoli@ccw.com.cn---- 摘 要: PB 5.0 具 备 快 速 开 发DDE 服 务 器 应 用 程 序 和DDE 客 户 应 用 程 序 的 功 能, 只 须 掌 握 少 量 几 个 关 于DDE 的 系 统 函 数 和 窗 口 事 件 便 可 以 了。 ---- 关 键 字:DDE( 动 态 数 据 交 换,Dynamic Data Exchange),DDE 服 务 器 应 用 程 序(DDE Server Application),DDE 客 户 应 用 程 序(DDE Client Application), 冷 链 接(Cold Link), 温 链 接(Warm Link), 热 链 接(Hot Link). ---- 在WINDOWS 环 境 中, 可 以 同 时 运 行 多 道 应 用 程 序,DDE 是 这 些 应 用 程 序 之 间 进 行 数 据 交 换 的 方 便 方 法。 提 供 数 据 的 应 用 程 序 叫 做DDE 服 务 器 应 用 程 序, 接 收 数 据 的 应 用 程 序 叫 做 客 户 应 用 程 序, 下 面 分 别 简 称 为 服 务 器 和 客 户。DDE 包 括 三 种 链 接 方 式,(1) 冷 链 接,(2) 温 链 接,(3) 热 链 接。 下 面 分 三 种 情 况 分 述。 ---- ( 一) 冷 链 接。 ---- 在 服 务 器 和 客 户 之 间 只 有 单 个 命 令 时 使 用。 ---- 服 务 器 端 的 编 程: ---- 在 这 种 方 式 下, 服 务 器 不 能 主 动 地 通 知 客 户 自 己 的 数 据 变 化, 只 能 被 动 地 在 被 触 发Rem-oteExec,RemoteRequest,RemoteSend 事 件 之 后 在 这 些 事 件 的Script 中 对 客 户 进 行 回 应。 不 能 在 其 它 地 方 调 用DDE 函 数 来 主 动 地 与 客 户 联 络。 不 可 能 触 发 热 链 接 的 事 件RemoteHotLinkStart, RemoteHotL-inkStop, 当 然 属 于 客 户 的 事 件HotLinkAlarm 也 不 可 能 触 发。 ---- (1) 在 某 个 窗 口 的OPEN 事 件 或 其 它 的 事 件 中 调 用StartServerDDE 函 数 来 指 定 此 应 用 程 序 充 当 服 务 器, 该 窗 口 称 为 服 务 器 窗 口。 ---- (2) 在 服 务 器 窗 口 的RemoteExec 事 件 中 调 用GetCommandDDEOrigin,GetCommandDDE 函 数 来 获 取 客 户 发 来 的 命 令 及 命 令 源 , 调 用RespondRemote 函 数 来 表 示 命 令 可 否 接 受, 并 对 命 令 进 行 处 理。 该 事 件 是 由 客 户 调 用 ExecRemote 函 数 触 发。 ---- (3) 在 服 务 器 窗 口 的RemoteSend 事 件 中 调 用GetDataDDEOrigin,GetDataDDE 函 数 来 获 取 客 户 发 来 的 数 据 及 数 据 源, 调 用RespondRemote 函 数 来 表 示 数 据 可 否 接 受, 并 对 数 据 进 行 处 理。 该 事 件 由 客 户 端 调 用SetRemote 函 数 触 发。 ---- (4) 在 服 务 器 窗 口 的RemoteRequest 事 件 中 调 用SetDataDDE 函 数 来 向 客 户 发 送 数 据, 并 调 用RespondRemote 函 数 来 通 知 客 户 是 否 应 允 这 个 请 求。 ---- (5) 在 想 结 束DDE 时 调 用 StopServerDDE 函 数 中 止。 ---- 客 户 端 的 编 程: ---- 在 这 种 方 式 下, 客 户 端 只 能 调 用ExecRemote,GetRemote,SetRemote 三 个 函 数 分 别 来 向 服 务 器 发 送 命 令, 请 求 数 据, 发 送 数 据, 不 会 有RemoteExec,RemoteSend,RemoteRequest,RemoteHot-LinkStop,RemoteHotLinkStart,HotLinkAlarm 等 任 何DDE 事 件 被 触 发。 在 这 种 方 式 下, 因 为 通 讯 的 双 方 没 有 建 立 通 道, 客 户 在 做 出 通 讯 请 求 后WINDOWS 将 轮 流 查 询 所 有 打 开 了 的 应 用, 直 到 得 到 回 应 为 止, 故 这 种 方 式 的 效 率 较 低。 ---- 注 意:PowerBuilder 的Application 对 象 的 属 性DDETimeOut 决 定 了 做 为 客 户 的 应 用 程 序 向 服 务 器 请 求 回 应 的 最 大 等 待 时 间。 ---- ( 二) 温 链 接。 ---- 在 服 务 器 和 客 户 之 间 不 只 有 单 个 命 令 时 使 用。 服 务 器 端 的 编 程: 完 全 和 冷 链 接 一 样。 ---- 客 户 端 的 编 程: ---- 大 致 和 冷 链 接 一 样, 具 体 区 别 如 下: ---- (1) 先 调 用OpenChannel 函 数 打 开 通 道, 再 开 始 调 用 上 面 所 说 的 那 三 个 函 数 与 服 务 器 通 讯。 ---- (2) 通 讯 完 之 后 调 用CloseChannel 关 闭 通 道。 ( ---- 3) 调 用ExecRemote,SetRemote,GetRemote 函 数 时 使 用 温 链 接 的 语 法 格 式。 ---- (4) 因 为 打 开 了 专 门 的 通 道, 故WINDOWS 不 必 轮 流 查 询 所 有 打 开 的 应 用 程 序, 效 率 会 比 冷 链 接 高。 ---- ( 三) 热 链 接。 ---- 在 服 务 器 端 的 数 据 有 变 化 时 服 务 器 主 动 地 通 知 客 户 时 使 用。 ---- 服 务 器 端 的 编 程: ---- (1) 最 先 调 用StartServerDDE, 结 束 时 调 用StopServerDDE. ---- (2) 在 数 据 发 生 变 化 时 调 用SetDataDDE 函 数 通 知 客 户, 这 将 触 发 客 户 端 的HotLinkAlarm 事 件。 ---- (3) 不 要 在 其 它 的 事 件 中 编 程, 也 不 要 再 调 用 其 它 的 函 数。 ---- 客 户 端 的 编 程: ---- (1) 先 调 用StartHotLink 函 数 建 立 热 链 接, 最 后 调 用StopHotLink 中 止。 ---- (2) 在 建 立 热 链 接 地 窗 口 的HotLinkAlarm 事 件 中 调 用GetDataDDEOrigin,GetDataDDE 函 数 来 获 得 发 送 来 的 数 据 和 数 据 的 源, 并 对 收 到 的 数 据 进 行 处 理。 再 调 用RespondRemote 回 答 是 否 接 受 。 ---- (3) 不 要 在 其 它 的 事 件 中 编 程, 也 不 要 再 调 用 其 它 的 函 数。 ---- ( 四) 一 个 三 种 方 式 都 可 进 行 的 例 子 ---- 这 个 例 子 在WINDOW95,PB 5 环 境 下 调 试 通 过, 你 可 以 同 时 运 行DDESERVER.EXE 和 DDECLIENT.EXE 两 个 应 用, 前 者 为 服 务 器, 后 者 为 客 户, 在 客 户 端 可 以 任 意 地 建 立 一 种 链 接, 并 与 服 务 器 交 换 数 据。 具 体 过 程 如 下: ---- (1) 进 入PB5.0 开 发 环 境, 建 立 一 个 名 字 叫ddeserver.pbl 的 新PBL 库 文 件。 ---- (2) 在 刚 建 立 的PBL 中 建 立 一 个 名 字 叫ddeserver 的Application 对 象。 ---- (3) 按 下 面 的 界 面 建 立 一 个 新 的 窗 口。 ---- (4) 它 是 名 字 叫sle_Name 的 单 行 编 辑 文 本 框。 ---- (5) 它 是 名 字 叫sle_Sex 的 单 行 编 辑 文 本 框。 ---- (6) 它 是 名 字 叫st_LinkType 的 静 态 文 本 框。 ---- (7) 它 是 名 字 叫st_Status 的 静 态 文 本 框。 ---- (8) 它 是 名 字 叫cb_Close 的 按 钮。 ---- (9) 把 新 建 的 窗 口 以 名 字 w_DDEServer 存 盘。 ---- (10) 在ddeserver Application 对 象 的OPEN 事 件Script 中 写 入 语 句:Open(w_DDEServer) ---- (11) 为 窗 口w_DDEServer 定 义 实 例 变 量: Protected: String is_NeedType=name' //name' //ex' String is_LinkType=oldLink'//oldLink' //armLink' //otLink' ---- (12) 为 窗 口w_DDEServer 的OPEN 事 件 Script 写 入 下 面 的 程 序: //============================================================ // The Window w_DDEServer Open Event // Start DDE Server //============================================================ Integer li_Temp //Start This Application As A DDE Server,In This Window st_Status.Text='Start DDE Server ...... !' li_Temp=StartServerDDE(w_DDEServer, 'MySampleDDEServer','StudentInformation',& 'StudentName','StudentSex') //The ApplicationName IS 'MySampleDDEServer' //The Topic IS 'StudentInformation' //The Item Has TWO,'StudentName' And 'StudentSex' If li_Temp=1 Then st_Status.Text='Start DDE Server Successfully !' Else st_Status.Text='Start DDE Server Failed !' MessageBox(DDEServer.DisplayName,& 'Start DDE Server Failed ,Cannot Continue !',& StopSign!& ) Halt Close End If st_Status.Text='Ready' ---- (13) 为 窗 口w_DDEServer 的CLOSE 事 件 Script 写 入 下 面 的 程 序: //========================================================== // The Window w_DDEServer Close Event // Close DDE Server //========================================================== Integer li_Temp li_Temp=StopServerDDE(w_DDEServer,'MySampleDDEServer',& 'StudentInformation') If li_Temp<>1 Then Beep(100) End If ---- (14) 为 窗 口w_DDEServer 的RemoteRequest 事 件 Script 写 入 下 面 的 程 序: //========================================================== // The Window w_DDEServer RemoteRequest Event // Send Data To The DDE Client //========================================================== Integer li_Temp st_Status.Text='DDE Client Requesting' If is_NeedType='Name' Then //Name li_Temp=SetDataDDE(sle_Name.Text) If li_Temp=1 Then st_Status.Text='Send Name Data Ok !' li_Temp=RespondRemote(True) Else st_Status.Text='Send Name Data Error !' li_Temp=RespondRemote(False) End If Else//Sex li_Temp=SetDataDDE(sle_Sex.Text) If li_Temp=1 Then st_Status.Text='Send Sex Data Ok !' li_Temp=RespondRemote(True) Else st_Status.Text='Send Sex Data Error !' li_Temp=RespondRemote(False) End If End If ---- (15) 为 窗 口w_DDEServer 的RemoteSend 事 件 Script 写 入 下 面 的 程 序: //========================================================== // The Window w_DDEServer RemoteSend Event // Get Data Which Sent From The DDE Client //========================================================== Integer li_Temp String ls_AppName,ls_TopicName,ls_ItemName String ls_StudentName,ls_StudentSex st_Status.Text='DDE Client Sending' //Get The Data Origin li_Temp=GetDataDDEOrigin (ls_AppName,ls_TopicName,ls_ItemName) If li_Temp=1 Then If ls_AppName='MySampleDDEServer' And & ls_TopicName='StudentInformation' And & ls_ItemName='StudentName' Then //Get The Name li_Temp=GetDataDDE(ls_StudentName) If li_Temp=1 Then li_Temp=RespondRemote(True) sle_Name.Text=ls_StudentName Else //Error li_Temp=RespondRemote(False) st_Status.Text='Get Data Error !' End If Else If ls_AppName='MySampleDDEServer' And & ls_TopicName='StudentInformation' And & ls_ItemName='StudentSex' Then //Get The Sex li_Temp=GetDataDDE(ls_StudentSex) IF li_Temp=1 Then li_Temp=RespondRemote(True) sle_Sex.Text=ls_StudentSex Else //Error st_Status.Text='Get Data Error !' li_Temp=RespondRemote(False) End If Else //Other DDE Item li_Temp=RespondRemote(False) st_Status.Text='Other DDE Item' End If End If Else st_Status.Text='Get DDE Origin Error !' End If(16) 为 窗 口w_DDEServer 的RemoteExec 事 件 Script 写 入 下 面 的 程 序:
//==========================================================
// The Window w_DDEServer RemoteExec Event
// Get Command Which Sent From The DDE Client And Process
//==========================================================
Integer li_Temp
String ls_Command,ls_AppName
st_Status.Text='DDE Client Sent Command'
//Get The Command Origin
li_Temp=GetCommandDDEOrigin(ls_AppName)
If li_Temp=1 Then
If ls_AppName='MySampleDDEServer' Then
//Get The Command
li_Temp=GetCommandDDE(ls_Command)
If li_Temp=1 Then
li_Temp=RespondRemote(True)
//Process The Command
CHOOSE CASE ls_Command
CASE 'BeginColdLink'
is_LinkType='ColdLink'
st_LinkStatus.Text='Cold Link'
st_Status.Text='Begin Cold Link'
CASE 'BeginWarmLink'
is_LinkType='WarmLink'
st_LinkStatus.Text='Warm Link'
st_Status.Text='Begin Warm Link'
CASE 'ClearTheName'
sle_Name.Text=''
st_Status.Text='Cleared The Name'
CASE 'ClearTheSex'
sle_Sex.Text=''
st_Status.Text='Cleared The Sex'
CASE 'Name'
is_NeedType='Name'
st_Status.Text='Need The Name'
CASE 'Sex'
is_NeedType='Sex'
st_Status.Text='Need The Sex'
CASE ELSE
st_Status.Text='Other Command'
END CHOOSE
Else
//Error
li_Temp=RespondRemote(False)
st_Status.Text='Get Data Error !'
End If
Else
//Other App
li_Temp=RespondRemote(False)
st_Status.Text='Other Application Command'
End If
Else
st_Status.Text='Get DDE Command Origin Error !'
End If
---- (17) 为 窗 口w_DDEServer 的RemoteHotLinkStart 事 件 Script 写 入 下 面 的 程 序: //========================================================== // The Window w_DDEServer RemoteHotLinkStart Event // Know The Link Type Is HotLink //========================================================== is_LinkType='HotLink' st_LinkStatus.Text='Hot Link' st_Status.Text='Started Hot Link' ---- (18) 为 窗 口w_DDEServer 的RemoteHotLinkStop 事 件 Script 写 入 下 面 的 程 序: //========================================================== // The Window w_DDEServer RemoteHotLinkStop Event // Know The Hot Link Stopped //========================================================== st_Status.Text='Stopped Hot Link' ---- (19) 进 入sle_Name 的script 画 屏, 定 义 用 户 事 件, 名 字ue_KeyUp,EventID 为 ---- pbm_KeyUp ---- (20) 在sle_Name 的 ue_KeyUp 事 件 的Script 中 写 入 下 面 的 程 序: //========================================================== // The Control sle_Name us_KeyUp Event // Send Data To Client When HotLink //========================================================== Integer li_Temp If is_LinkType='HotLink' Then li_Temp=SetDataDDE(This.Text,'MySampleDDEServer',& 'StudentInformation','StudentName') If li_Temp=1 Then st_Status.Text='Set DDE Data Name Successfully !' Else st_Status.Text='Set DDE Data Name Failed !' End If End If ---- (21) 进 入sle_Sex 的script 画 屏, 定 义 用 户 事 件, 名 字ue_KeyUp,EventID 为 ---- pbm_KeyUp ---- (22) 在sle_Sex 的 ue_KeyUp 事 件 的Script 中 写 入 下 面 的 程 序: //========================================================== // The Control sle_Sex us_KeyUp Event // Send Data To Client When HotLink //========================================================== Integer li_Temp If is_LinkType='HotLink' Then li_Temp=SetDataDDE(This.Text,'MySampleDDEServer',& 'StudentInformation','StudentSex') If li_Temp=1 Then st_Status.Text='Set DDE Data Sex Successfully !' Else st_Status.Text='Set DDE Data Sex Failed !' End If End If ---- (23) 在sle_Sex 的 ue_KeyUp 事 件 的Script 中 写 入 下 面 的 程 序: //========================================================== // The Control cb_Close Clicked Event // Close The Window w_DDEServer //========================================================== Close(Parent) ---- (24) 建 立 一 个 新 的Project, 名 字 ddeserver, 并 生 成EXE 文 件,ddeserver.exe. ---- (25) 用 类 似 的 方 法 建 立PBL 库 ddeclient.pbl,ddeclient Application 对 象,w_DDEClient 窗 口,ddeclient 工 程 对 象 Project,ddeclient.exe 界 面 如 下: //========================================================== //The Control Name List: //========================================================== SingleLinkEdit: sle_Name sle_Sex RadioButton: rb_1 rb_2 rb_3 CommandButton: cb_1 cb_2 cb_3 cb_4 cb_5 cb_6 cb_7 cb_Close ---- (26) 程 序 如 下:
//============================================================
// The Window w_DDEClient Instance Variables Define
//
//
//============================================================
Protected:
String is_LinkType=扖oldLink'//扖oldLink'
//扺armLink'
//扝otLink'
String is_NeedType=扤ame' //扤ame'
//扴ex'
Long il_ChannelHandle //Used For WarmLink Channel Handle
//============================================================
// The Window w_DDEClient HotLinkAlarm Event
// Get Data Sent Form The DDE Sever
//
//============================================================
Integer li_Temp
String ls_AppName,ls_TopicName,ls_ItemName
String ls_Name,ls_Sex//The Get Data From The DDE Server
Beep(300)
li_Temp=GetDataDDEOrigin(ls_AppName,ls_TopicName,ls_ItemName)
If li_Temp=1 Then
If ls_AppName='MySampleDDEServer' And &
ls_TopicName='StudentInformation' And &
ls_ItemName='StudentName' Then
li_Temp=GetDataDDE(ls_Name)
If li_Temp=1 Then
sle_Name.Text=ls_Name
Else
st_Status.Text='Get DDE Data Failed !'
End If
Else
If ls_AppName='MySampleDDEServer' And &
ls_TopicName='StudentInformation' And &
ls_ItemName='StudentSex' Then
li_Temp=GetDataDDE(ls_Sex)
If li_Temp=1 Then
sle_Sex.Text=ls_Sex
Else
st_Status.Text='Get DDE Data Failed !'
End If
Else
st_Status.Text='Else Item Changes !'
End If
End If
Else
st_Status.Text='Get DDE Origin Failed !'
End If
//=========================================================
// The Control cb_7 Clicked Event
// Send Sex Data
// Send Sex Data To The DDE Server
//==========================================================
Integer li_Temp
String ls_Sex
SetPointer(HourGlass!)
ls_Sex=sle_Sex.Text
If is_LinkType='ColdLink' Then
li_Temp=SetRemote('StudentSex',ls_Sex,&
'MySampleDDEServer','StudentInformation')
If li_Temp=1 Then
st_Status.Text='Send Data To Server Successfully !'
Else
st_Status.Text='Send Data To Server Failed !'
End If
Else
li_Temp=SetRemote('StudentSex',ls_Sex,&
il_ChannelHandle)
If li_Temp=1 Then
st_Status.Text='Send Data To Server Successfully !'
Else
st_Status.Text='Send Data To Server Failed !'
End If
End If
SetPointer(Arrow!)
//===========================================================
// The Control cb_6 Clicked Event
// Send Sex Command
// Send Sex Command To The DDE Server
//===========================================================
Integer li_Temp
String ls_Command
If is_NeedType='Sex' Then
Return 1
End If
SetPointer(HourGlass!)
ls_Command='Sex'
If is_LinkType='ColdLink' Then
li_Temp=ExecRemote(ls_Command,'MySampleDDEServer',&
'StudentInformation')
If li_Temp=1 Then
is_NeedType='Sex'
st_Status.Text='Execute Send
'+ls_Command+'Command Successfully !'
Else
st_Status.Text='Execute Send
'+ls_Command+' Command Failed !'
End If
Else
li_Temp=ExecRemote(ls_Command,il_ChannelHandle)
If li_Temp=1 Then
is_NeedType='Sex'
st_Status.Text='Execute Send
'+ls_Command+' Command Successfully !'
Else
st_Status.Text='Execute Send
'+ls_Command+' Command Failed !'
End If
End If
SetPointer(Arrow!)
//==========================================================
// The Control cb_5 Clicked Event
// Send Name Command
// Send Name Command To The DDE Server
//==========================================================
Integer li_Temp
String ls_Command
If is_NeedType='Name' Then
Return 1
End If
SetPointer(HourGlass!)
ls_Command='Name'
If is_LinkType='ColdLink' Then
li_Temp=ExecRemote(ls_Command,'MySampleDDEServer',&
'StudentInformation')
If li_Temp=1 Then
is_NeedType='Name'
st_Status.Text='Execute Send
'+ls_Command+'Command Successfully !'
Else
st_Status.Text='Execute Send
'+ls_Command+' Command Failed !'
End If
Else
li_Temp=ExecRemote(ls_Command,il_ChannelHandle)
If li_Temp=1 Then
is_NeedType='Name'
st_Status.Text='Execute Send
'+ls_Command+' Command Successfully !'
Else
st_Status.Text='Execute Send
'+ls_Command+' Command Failed !'
End If
End If
SetPointer(Arrow!)
//=========================================================
// The Control cb_4 Clicked Event
// Send ClearTheSex Command
// Send ClearTheSex Command To The DDE Server
//=========================================================
Integer li_Temp
String ls_Command
SetPointer(HourGlass!)
ls_Command='ClearTheSex'
If is_LinkType='ColdLink' Then
li_Temp=ExecRemote(ls_Command,'MySampleDDEServer',&
'StudentInformation')
If li_Temp=1 Then
st_Status.Text='Execute Send
'+ls_Command+'Command Successfully !'
Else
st_Status.Text='Execute Send
'+ls_Command+' Command Failed !'
End If
Else
li_Temp=ExecRemote(ls_Command,il_ChannelHandle)
If li_Temp=1 Then
st_Status.Text='Execute Send
'+ls_Command+' Command Successfully !'
Else
st_Status.Text='Execute Send
'+ls_Command+' Command Failed !'
End If
End If
SetPointer(Arrow!)
//===========================================================
// The Control cb_3 Clicked Event
// Send Name Data
// Send Name Data To The DDE Server
//===========================================================
Integer li_Temp
String ls_Name
SetPointer(HourGlass!)
ls_Name=sle_Name.Text
If is_LinkType='ColdLink' Then
li_Temp=SetRemote('StudentName',ls_Name,&
'MySampleDDEServer','StudentInformation')
If li_Temp=1 Then
st_Status.Text='Send Data To Server Successfully !'
Else
st_Status.Text='Send Data To Server Failed !'
End If
Else
li_Temp=SetRemote('StudentName',ls_Name,&
il_ChannelHandle)
If li_Temp=1 Then
st_Status.Text='Send Data To Server Successfully !'
Else
st_Status.Text='Send Data To Server Failed !'
End If
End If
SetPointer(Arrow!)
//===========================================================
// The Control cb_2 Clicked Event
// Request Data
//
//===========================================================
Integer li_Temp
String ls_Name,ls_Sex
SetPointer(HourGlass!)
If is_LinkType='ColdLink' Then
//--------------------------------------------------
If is_NeedType='Name' Then
//----------------------------------------------
li_Temp=GetRemote('StudentName',ls_Name,&
'MySampleDDEServer','StudentInformation')
If li_Temp=1 Then
sle_Name.Text=ls_Name
st_Status.Text='Get Remote Successfully !'
Else
st_Status.Text='Get Remote Failed !'
End If
Else//Sex
//----------------------------------------------
li_Temp=GetRemote('StudentSex',ls_Sex,&
'MySampleDDEServer','StudentInformation')
If li_Temp=1 Then
sle_Sex.Text=ls_Sex
st_Status.Text='Get Remote Successfully !'
Else
st_Status.Text='Get Remote Failed !'
End If
End If
Else//WarmLink
//--------------------------------------------------
If is_NeedType='Name' Then
//----------------------------------------------
li_Temp=GetRemote('StudentName',ls_Name,&
il_ChannelHandle)
If li_Temp=1 Then
sle_Name.Text=ls_Name
st_Status.Text='Get Remote Successfully !'
Else
st_Status.Text='Get Remote Failed !'
End If
Else//Sex
//----------------------------------------------
li_Temp=GetRemote('StudentSex',ls_Sex,&
il_ChannelHandle)
If li_Temp=1 Then
sle_Sex.Text=ls_Sex
st_Status.Text='Get Remote Successfully !'
Else
st_Status.Text='Get Remote Failed !'
End If
End If
End If
SetPointer(Arrow!)
//======================================================
// The Control cb_1 Clicked Event
// Send ClearTheName Command
// Send ClearTheName Command To The DDE Server
//======================================================
Integer li_Temp
String ls_Command
SetPointer(HourGlass!)
ls_Command='ClearTheName'
If is_LinkType='ColdLink' Then
li_Temp=ExecRemote(ls_Command,'MySampleDDEServer',&
'StudentInformation')
If li_Temp=1 Then
st_Status.Text='Execute Send
'+ls_Command+'Command Successfully !'
Else
st_Status.Text='Execute Send
'+ls_Command+' Command Failed !'
End If
Else
li_Temp=ExecRemote(ls_Command,il_ChannelHandle)
If li_Temp=1 Then
st_Status.Text='Execute Send
'+ls_Command+' Command Successfully !'
Else
st_Status.Text='Execute Send
'+ls_Command+' Command Failed !'
End If
End If
SetPointer(Arrow!)
//======================================================
// The Control rb_3 Clicked Event
// Begin HotLink
//
//=========================================================
Integer li_Temp
If is_LinkType<>'HotLink' Then
If is_LinkType='WarmLink' Then//Warm Link
li_Temp=CloseChannel(il_ChannelHandle)
End If
li_Temp=StartHotLink('StudentName',&
'MySampleDDEServer','StudentInformation')
li_Temp+=StartHotLink('StudentSex',&
'MySampleDDEServer','StudentInformation')
If li_Temp=2 Then
is_LinkType='HotLink'
st_Status.Text='Start Hot Link Successfully !'
cb_1.Enabled=False
cb_2.Enabled=False
cb_3.Enabled=False
cb_4.Enabled=False
cb_5.Enabled=False
cb_6.Enabled=False
cb_7.Enabled=False
Else
st_Status.Text='Start Hot Link Failed !'
End If
End If
//=======================================================
// The Control rb_2 Clicked Event
// Begin WarmLink
//
//=======================================================
Integer li_Temp
If is_LinkType<>'WarmLink' Then
//Stop Hot Link
If is_LinkType='HotLink' Then
li_Temp=StopHotLink('StudentName',&
'MySampleDDEServer','StudentInformation')
li_Temp+=StopHotLink('StudentSex',&
'MySampleDDEServer','StudentInformation')
If li_Temp=2 Then
st_Status.Text='Stop DDE
Server Hot Link Seccessfully !'
cb_1.Enabled=True
cb_2.Enabled=True
cb_3.Enabled=True
cb_4.Enabled=True
cb_5.Enabled=True
cb_6.Enabled=True
cb_7.Enabled=True
Else
st_Status.Text='Stop DDE
Server Hot Link Failed !'
End If
End If
//Open Channel
il_ChannelHandle=OpenChannel('MySampleDDEServer',&
'StudentInformation')
If il_ChannelHandle>0 Then
is_LinkType='WarmLink'
li_Temp=ExecRemote('BeginWarmLink',il_ChannelHandle)
st_Status.Text='Start Warm Link Ok !'
cb_1.Enabled=True
cb_2.Enabled=True
cb_3.Enabled=True
cb_4.Enabled=True
cb_5.Enabled=True
cb_6.Enabled=True
cb_7.Enabled=True
Else
st_Status.Text='Open Channel Error !'
End If
End If
//========================================================
// The Control rb_1 Clicked Event
// Begin ColdLink
//
//=========================================================
Integer li_Temp
If is_LinkType<>'ColdLink' Then
If is_LinkType='HotLink' Then//Hot Link
li_Temp=StopHotLink('StudentName',&
'MySampleDDEServer','StudentInformation')
li_Temp+=StopHotLink('StudentSex',&
'MySampleDDEServer','StudentInformation')
If li_Temp=2 Then
is_LinkType='ColdLink'
st_Status.Text='Start Cold Link OK !'
li_Temp=ExecRemote('BeginColdLink',&
'MySampleDDEServer','StudentInformation')
cb_1.Enabled=True
cb_2.Enabled=True
cb_3.Enabled=True
cb_4.Enabled=True
cb_5.Enabled=True
cb_6.Enabled=True
cb_7.Enabled=True
Else
st_Status.Text='Start Cold Link Error !'
End If
Else//Warm Link
li_Temp=CloseChannel(il_ChannelHandle)
If li_Temp=1 Then
is_LinkType='ColdLink'
li_Temp=ExecRemote('BeginColdLink',&
'MySampleDDEServer','StudentInformation')
st_Status.Text='Start Cold Link Ok !'
cb_1.Enabled=True
cb_2.Enabled=True
cb_3.Enabled=True
cb_4.Enabled=True
cb_5.Enabled=True
cb_6.Enabled=True
cb_7.Enabled=True
Else
st_Status.Text='Start Cold Link Error !'
End If
End If
End If
//=========================================================
// The Control cb_Close Clicked Event
// Close Link And Window
//
//=========================================================
Integer li_Temp
If is_LinkType='WarmLink' Then
li_Temp=CloseChannel(il_ChannelHandle)
ElseIf is_LinkType='HotLink' Then
li_Temp=StopHotLink('StudentName',&
'MySampleDDEServer','StudentInformation')
li_Temp+=StopHotLink('StudentSex',&
'MySampleDDEServer','StudentInformation')
End If
If is_LinkType<>'ColdLink' Then
li_Temp=ExecRemote('BeginColdLink',&
'MySampleDDEServer','StudentInformation')
End If
Close(Parent)
|
在日常的工作生活中, 我们对计算机软硬件技术的应用开发肯定有许多的心得体会, 拿来和众人分享:让别人得到他们想要的,使自己找到苦苦寻觅的; 小的点点滴滴,大的工程系统,这里都需要。投稿 的关键在“技巧”二 字,知他人所不知,这样的稿件本栏最最欢迎! 大家公认的 好文章自然会有好的奖励。希望每个人 在这里都有所收获...
|
|||||||||||||||||||
中国计算机世界出版服务公司版权所有