PB視窗之間傳遞多引數的方法

2021-10-14 04:16:32 字數 2732 閱讀 1209

在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_1,「獨孤求敗」)

接著在開啟視窗w_1的open事件中鍵入:

sle_1.text = message.stringparm

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

方法一定義結構變數:lstr_para,其中包含你想傳遞的各種引數:

變數名 變數型別

id string

name string

*** string

loca string

在呼叫指令碼中(本例使用才選單clicked中),使用如下**:

lstr_para   lstr_tranpara

lstr_tranpara.id = "00000001"

lstr_tranpara.name = "獨孤求敗"

lstr_tranpara.*** = "男"

lstr_tranpara.loca = "廣東深圳"

openwithparm(w_2,lstr_tranpara)

接下來在開啟視窗w_2的open事件中,獲取結構資訊:

lstr_para   lstr_getpara

lstr_getpara = message.powerobjectparm

sle_1.text = lstr_getpara.id

sle_2.text = lstr_getpara.name

sle_3.text = lstr_getpara.***

sle_4.text = lstr_getpara.loca

其中,lstr_getpara為使用者自定義結構資料型別,是值傳送的。

方法二首先建立乙個類使用者物件

uo_para

在該使用者物件中將你需要傳遞的各種引數申明成例項變數,例如:

public:

string   id

string name

string ***

string loca

在呼叫指令碼中(本例使用才選單clicked中),使用如下**:

uo_para   uo_tranpara

uo_tranpara = create uo_para

uo_tranpara.id = "00000001"

uo_tranpara.name = "獨孤求敗"

uo_tranpara.*** = "男"

uo_tranpara.loca = "廣東深圳"

openwithparm(w_3,uo_tranpara)

接下來在開啟視窗w_3的open事件中,獲取使用者物件資訊:

uo_para uo_getpara

uo_getpara = message.powerobjectparm

sle_1.text = uo_getpara.id

sle_2.text = uo_getpara.name

sle_3.text = uo_getpara.***

sle_4.text = uo_getpara.loca

以上兩種方法比較而言,第一種方法雖然比較簡單實用,但是如果遇上較複雜的資料時,便不能在乙個結構資料中充分描述了;

第二種方法不但方便靈活,而且可以傳送複雜的資料。當然,引數的傳送不止以上的幾種方法,你也可以使用全域性變數或是公共可

訪問的視窗例項變數來傳送引數,或者在視窗中呼叫乙個函式,並傳遞所需的引數,在此就不再贅述了。

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

最好執行完視窗操作(開啟或關閉)後馬上將message訊息物件的值傳給變數,這是因為message是全域性使用的物件,

每一次事件被觸發或傳送時都會被使用,其他script 也有可能用到message訊息物件,因此它有被覆蓋的危險。

2.避免傳送null物件,以免程式出錯。

PB視窗之間多引數的傳遞

在powerbuilder中函式openwithparm,closewithreturn,opensheetwithparm,windowname.openuserobjectwithparm等都有乙個在進行視窗操作 開啟或者關閉 時存入message訊息物件的引數parameter或returnv...

PB視窗之間引數傳遞的幾種用

先來解釋一下引數傳遞的函式意義 message.stringparm 傳的是字元 message.doubleparm 傳的是數值 message.powerobjectparm 傳的是可以是視窗 物件 結構等等 例如 以數值傳遞為例 在w old視窗的相關事件中寫入如下 表示傳送要傳遞引數 lon...

Activity之間傳遞引數的方法

在activity之間傳遞引數的常用方法有3種,另外還有接受返回引數的辦法。1.使用intent類的方法 intent intent new intent intent.putstringextras data context startactivity intent 2.利用bundle bund...