国产探花免费观看_亚洲丰满少妇自慰呻吟_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對象,以免程序出錯。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 时尚| 叶城县| 江西省| 嘉兴市| 石城县| 桃园县| 五大连池市| 绥滨县| 阜康市| 蚌埠市| 宾川县| 墨竹工卡县| 上栗县| 阳西县| 遂溪县| 嵊州市| 万荣县| 定西市| 泸溪县| 东光县| 永兴县| 湟源县| 苏尼特左旗| 湾仔区| 寿阳县| 玉环县| 安陆市| 巨鹿县| 江都市| 东台市| 承德县| 贵定县| 麦盖提县| 清苑县| 雷山县| 长兴县| 长丰县| 南昌县| 龙岩市| 天等县| 九龙县|