参数传递的几种用法。

来源:互联网 发布:软件如何注册 编辑:程序博客网 时间:2024/04/30 05:17
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

参数传递几种用法。

一次需要在几个窗口之间传递参数,最开始想到的是定义一个全局变量。

可以做了以后发现并不太理想。

最后向别人学习了参数传递,解决了很多问题,感觉上也不容易出错。

现在写出来与大家分享,也为自己保留,以便察看。
-----------------------------------------------------------
先来解释一下参数传递的函数意义:
message.stringparm (传的是字符)
message.DoubleParm  (传的是数值)
message.PowerObjectParm(传的是可以是窗口、对象、结构等等)
例如:(以数值传递为例)
在w_old窗口的相关事件中写入如下代码,表示发送要传递参数:
longll_old
ll_old=你要传递的数值
openwithparm(w_new(//新窗口),ll_old)
------------
在w_new窗口(新窗口)的相关事件中写如下代码表示接受参数:
longll_new
ll_new=Message.DoubleParm/*这样就接收到了你要的参数了。*/
-----------------------------------------------------------

上面只是一个参数的传递,
对于多参数的传递,说是有3种方法:
     1.用字符传组传递,到目的地进行分割
     2.传递结构对象
     3.用对象做载体传递 
我现在掌握的也就前两种,最后一种我不太理解。以后会了再补充。

现在先来说:1.用字符传组传递,到目的地进行分割
意思也就是说,把多个参数组合成一个进行传递,
组合的时候需要加入分割符---自己定义的。接收参数后再将其分割成多个。
*在w_old窗口的相关事件中写入如下代码:
/*例如组合好的自符串为pass_old="123|4567" ---注意组合前123和4567
可能都是long型的,不要紧,转换类型就行*/
stringpass_old
pass_old=string(ll_pre)+"|"+string(ll_tra)
//ll_pre=123,ll_tra=4567
openwithparm(w_new(//新窗口),pass_old)
----------
*在w_new窗口(新窗口)的相关事件中写如下代码:
integerli_fen/*定义用来记录分割符的位置*/
longll_newpre,ll_newtra/*用来分别存放两部分*/
stringpass_new
pass_new=message.stringparm

li_fen=Pos(pass_new,"|")/*确定并记录分割符的位置*/

ll_newpre=long(left(pass_new,li_fen-1))

ll_newtra=long(right(pass_new,len(pass_new)-li_fen))

/*上面就是第一种方法-----用字符传组传递,到目的地进行分割*/
--------------------------------------
在来说说:2.传递结构对象
在库文件中创建一个structure对象,注意是创建,因为它就象一个窗口一样
是个对象,不是用与句定义的。structures_info
  变量名    变量类型
  ID       long
  Name      Char
   Sex       Char
/*先以此为例。*/
**在w_old窗口的相关事件中写入如下代码:
s_infolstr_pre
lstr_pre.id=1/*赋ID的值
lstr_pre.name="zhdleo" /*赋name的值
lstr_pre.name="male" /*赋sex的值
openwithparm(w_new(//新窗口),lstr_pre)
**在w_new窗口(新窗口)的相关事件中写如下代码:
s_infolstr_tra
longtra_id
stringtra_name
stringtra_sex/*定义要接收的变量

lstr_tra=message.PowerObjectParm/*接收参数
tra_id=lstr_tra.id 
tra_id=lstr_tra.name
tra_id=lstr_tra.sex/*赋值

/*上面就是第二种方法------传递结构对象
-------------------------------------------
我个人觉得第二种方法还是非常优的,不但结构清楚,而且定义了结构体也共2页  1 
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击