国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

PB窗口之間傳遞多參數的方法

2024-07-21 02:10:21
字體:
來源:轉載
供稿:網友
 

  在powerbuilder中函數openwithparm,closewithreturn,opensheetwithparm,windowname.openuserobjectwithparm等都有一個在進行窗口操作(打開或者關閉)時存入message消息對象的參數parameter或returnvalue。

  消息對象message有三個屬性用于存儲這些函數傳遞給窗口的數據(依賴于窗口操作時參數賦予的類型)。根據parameter / returnvalue參數數據類型的不同,該參數的值保存在message對象的不同屬性中。parameter / returnvalue參數的類型與使用的message對象屬性的對應關系如下表:

參數類型 message對象屬性
numeric(數值) message.doubleparm
powerobject(pb對象,包括用戶自定義的結構數據類型) message.powerobjectparm
string(字符串) message.stringparm
  應用程序根據openwithparm()等函數的parameter / returnvalue參數類型,從message消息對象的不同屬性中提取該函數并傳送給被打開窗口的值。

  在pb中如果是傳遞一個參數,是很容易實現的。在調用腳本中,可以使用如下代碼:

  openwithparm(w—wantparm,parmtotrans)

  接著在打開窗口w—wantparm的open事件中鍵入:

  string ls—getparm

  ls—getparm=message.stringparm

  …

  如果需要傳遞多個參數,可以使用如下兩種方法:

  方法一

  定義結構變量:lstr—declaredstr,其中包含你想傳遞的各種參數:

  變量名      變量類型

  id          unsignedlong

  name      character

  email      character

  homepage      character

   …        …

  在調用腳本中,使用如下代碼:

  lstr—declaredstr lstr—parmtotrans

  lstr—parmtotrans.id=1

  lstr—paramtotrans.name=″panya″

  lstr—paramtotrans.email=″[email protected]″

  lstr—paramtotrans.homepage=″http://panya.163.net″

  …

  openwithparm(w_wantparm,parmtotrans)

  接下來在打開窗口w—wantparm的open事件中,獲取結構信息:

  lstr—declaredstr lstr—getparm

  integer li—getid

  string ls—getname

  string ls—getemail

  string ls—gethomepage

  lstr—getparm=message.powerobjectparm

  li—getid=lstr—getparm.id

  ls—getname= lstr—getparm.name

  ls—geemail= lstr—getparm.email

  ls—gethomepage= lstr—getparm.homepage

  …

  其中ame

  string email

  string homepage

  ...

  打開窗口w—wantparm,并傳遞多個參數:

  u—n—parmtostore lnv_paramtotrans

  lnv—paramtotrans.id=1

  lnv—paramtotrans.name=″panya″

  lnv—paramtotrans.email=″[email protected]″

  lnv—paramtotrans.homepage=″http://pbnet.126.com″

  …

  openwithparm ( w—wantparm, lnv—paramtotrans )

  在 w—wantparm 的 open 事件中訪問傳來的參數:

  u—n—parmtostore lnv—getparam

  integer li—getid

  string ls—getname

  string ls—getemail

  string ls—gethomepage

  lnv—getparam = message.powerobjectparm

  li—getid=lnv—getparam.id

  ls—getname=lnv—getparam.name

  ls—gethomepage=lnv—getparam.homepage

  ls—getemail=lnv—getparam.email

  …

  以上兩種方法比較而言,第一種方法雖然比較簡單實用,但是如果遇上較復雜的數據時,便不能在一個結構數據中充分描述了;第二種方法不但方便靈活,而且可以傳送復雜的數據。當然,參數的傳送不止以上的幾種方法,你也可以使用全局變量或是公共可訪問的窗口實例變量來傳送參數,或者在窗口中調用一個函數,并傳遞所需的參數,在此就不再贅述了。

  另外,用message傳遞參數必須注意以下幾點:

  1. 最好執行完窗口操作(打開或關閉)后馬上將message消息對象的值傳給變量,這是因為message是全局使用的對象,每一次事件被觸發或傳送時都會被使用,其他script 也有可能用到message消息對象,因此它有被覆蓋的危險。

  2.避免傳送null對象,以免程序出錯。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋宁县| 静宁县| 沅陵县| 扶绥县| 遂昌县| 乐亭县| 游戏| 永嘉县| 诏安县| 望谟县| 民丰县| 东宁县| 静海县| 汉阴县| 甘德县| 南召县| 英超| 理塘县| 措美县| 石河子市| 文成县| 新平| 邻水| 张家口市| 封开县| 东莞市| 长丰县| 八宿县| 永定县| 南乐县| 金华市| 岑溪市| 和林格尔县| 芮城县| 祥云县| 百色市| 扎兰屯市| 陆河县| 从化市| 牡丹江市| 绥棱县|