$PBExportHeader$pmc_param_n.sru
$PBExportComments$用于傳遞引數的用戶物件
forward
global type pmc_param_n from nonvisualobject
end type
end forward
type struct_param from structure
string paramname
any paramvalue
end type
global type pmc_param_n from nonvisualobject autoinstantiate
end type
type variables
public :
struct_param is_params[]
end variables
on pmc_param_n.create
TriggerEvent( this, "constructor" )
end on
on pmc_param_n.destroy
TriggerEvent( this, "destructor" )
end on
這是從別人的程式中看到滴一個用戶物件。
比PB本身的結構好用多了。
但是編譯報錯。而且我只能這么導到程式里面,自己創建時根本無法完成,
在定義實體變數時報:
Instance Variables
(0003): Warning C0190: Instance variables of local structure type ('struct_param') will be implicitly private in the next release.
麻煩哪位高手幫忙解決一下。
uj5u.com熱心網友回復:
找一下,估計是要先定義 struct_param 結構.uj5u.com熱心網友回復:
已經定義了呀。type struct_param from structure
string paramname
any paramvalue
end type
uj5u.com熱心網友回復:
宣告的時候用 private 試一下.uj5u.com熱心網友回復:
那樣的話,我在別的地方就不能呼叫用戶物件中的結構陣列了。
uj5u.com熱心網友回復:
那搞不清楚了,真不知道物件中定義的結構還可以定義成 public ?uj5u.com熱心網友回復:
要定義成 public ,估計 struct_param 要先定義成一個全域結構吧.uj5u.com熱心網友回復:
Instance variables of local structure type ('struct_param') will be implicitly private in the next release.這句的恐怕是講的該結構將被隱含的解釋成 private 的意思吧.
uj5u.com熱心網友回復:
我直接把SRU導到程式中后,使用起來很方便,就是編譯的時候報上面的錯誤。
uj5u.com熱心網友回復:
Warning(警告)而已,不是錯誤.uj5u.com熱心網友回復:
我自己創建時也有這樣的警告。就是不讓我通過。
保存不了,
請問有什么好辦法不。
uj5u.com熱心網友回復:
我想到的只好這樣.
uj5u.com熱心網友回復:
在用戶物件里定義的結構體,定義變數是要用private,這個我曾經做過。其他地方要使用這個變數,必須寫上類似set和get的方法,不能直接訪問變數
uj5u.com熱心網友回復:
正確
uj5u.com熱心網友回復:
目前的版本沒那么麻煩,不過不知道以后是不是真像warning中寫的那樣隱式轉換成private.不過雖然還沒有強制轉換(或者說型別檢查),目前像你這樣在painter下直接想宣告成非private的也是不允許的。你可以先把這個結構宣告成private的,保存。然后edit soource,把宣告中的‘private’改成public,就可以了。
uj5u.com熱心網友回復:
在對像內宣告結構,感覺pb的支持不是很好,經常會出問題,所以我一般情況是不用的uj5u.com熱心網友回復:
這個不是錯誤,你在USEROBJECT(或WINDIW一類)中,定義了用戶物件級別的結構(structure),PB向你宣告,以后的版本,不再支持這樣的語法方式(以后我就不管啦,用不用由你!!!),這個沒有關系.
如果你看著實在不順眼,可以將struct_param定義為全域的結構體.
uj5u.com熱心網友回復:
struct_param 應該應該定義的有問題轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/93625.html
標籤:腳本語言
