时间: 2021-08-13 作者:daque
说到dynamic挪用典型,咱们先看看东西、属性、因变量和事变的援用本领: powerbuilder 6.0运用步调的开拓进程本质上即是百般东西的设置和运用进程。一切东西都有称呼,并经过称呼彼此辨别。在powerscript中,考察东西的属性、因变量、事变的本领很大略,即是运用圆点动作标志符,简直来说,考察东西属性的方法为: 东西名.东西属性 比方,把单列编纂框sle_name的用户输出实质送给字符串变量userenter的语句不妨写成: userenter=sle_name.text 个中,sle_name是一个单列编纂框东西的称呼,text是单列编纂框的text属性。 步调中考察东西的因变量与事变的方法为: { objectname.} { type } { calltype } { when } functionname ( { argumentlist } ) 个中,大括号所括因素按照情景不妨简略,各因素的意旨为: objectname是东西名; type取值为function或event,用来指明考察因变量仍旧事变,缺省值为function; calltype用来指明powerbuilder 搜索因变量的机会,灵验取值为: static(缺省值):编写翻译时搜索因变量,若不生存,爆发编写翻译缺点 dynamic:步调运转时搜索因变量,若不生存,爆发运转缺点 when用来指明因变量或事变是登时实行呢仍旧当出息序段实行结束后实行,取值为: trigger(缺省值):登时实行 post:当出息序段实行结束后实行 functionname指明挪用的因变量或事变称呼 argumentlist给出因变量或事变的参数 比方,想把输出中心挪动到单列编纂框sle_name上,步调中写上语句:sle_name.setfocus()即可。想登时实行按钮cb_name的单击事变处置步调,那么写上语句:cb_name .event trigger clicked()即可。 从之上看出,dynamic是指定因变量或事变的一个动静挪用,即当你指定一个动静挪用时,因变量和事变在编写翻译时不确定要生存。你报告编写翻译器:断定我,此处在运转时确定会有一个符合的因变量或事变。对于动静挪用,powerbuilder比及实行时才探求因变量或事变。这就给了你更大的编制程序精巧性。 请比拟以次的示例(节录): 暂时时髦的大局部运用步调中都供给了undo功效,在powerbuilder中也不妨运用undo()因变量实行该功效。undo()因变量可用来datawindow, editmask, multilineedit, richtextedit和singlelineedit 东西,即使只对某一个东西举行undo操纵,只需在undo菜单项的单击事变中键入如次剧本:objectname.undo(),然而当窗口中有多个东西,咱们在编写剧本时并不领会要对哪个东西实行undo()操纵,怎样处置这一题目呢?在powerbuilder中,undo()等因变量只能用来可视东西,而一切可视东西均接受自体例东西类graphicobject。所以咱们不妨设置一个graphicobject东西的范例变量go_object,比及运转时再用getfocus()因变量决定简直操抵制象。而后用typeof()因变量决定暂时东西的典型,再用choose case语句按照各别的典型援用各别的范例变量,代码如次: graphicobject go_object datawindow dw_object editmask em_object multilineedit mle_object richtextedit rte_object singlelineedit sle_object go_object=getfocus() choose case typeof(go_object) case datawindow! dw_object=go_object dw_object.undo() case editmask! em_object=go_object em_object.undo() case multilineedit! mle_object=go_object mle_object.undo() case richtextedit! rte_object=go_object rte_object.undo() case singlelineedit! sle_object=go_object sle_object.undo() case else messagebox("堕落","不许撤消!") end choose 本来咱们不妨用动静挪用因变量的本领大略地处置这一题目,即对graphicobject东西挪用undo()因变量,而后在因变量名前加上要害字dynamic