pb通過類名稱動態構建類物件(原創)

coolhe發表於2009-06-02

pb能通過類名稱動態產生類物件,方法:create using ls_classname

實現目標:利用一個表進行管理app的類。並在使用者點選的時候動態構建類物件。

需要:

物件基類

物件管理表

 

 以下是方法:

例項變數

Private:

long  il_pos_x, il_pos_y

str_module istr_modules[]

 

u_father    uo_t[]

n_ds    ids

 

str_module  istr_module[]

 

w_main:open event

ids = create n_ds

il_pos_x = r_main.x + 8

il_pos_y = r_main.y + 8

 

//  of_crt_userobject(integer as_classname )

 

int li_rowcount, i, li_openStatus

string  ls_classname

 

ids.dataobject = 'dw_fun_extra'

li_rowcount= ids.rowcount()

 

for i=1 to li_rowcount

    ls_classname =  ids.getitemstring(i, 'classname')

    istr_module[i].classname = ls_classname

    /*

         1、一次性構建類物件,但是不顯示;這樣做系統開始的開銷比較大。

         2、通過每次點選構建物件,首先判斷物件是否已經構建。這樣需要2步操作:(該方法未實現)

            1)構建一個物件陣列

            2)在該陣列中註冊類物件的名稱

            3)判斷類物件是否有效,如果無效則建立,否則顯示該物件即可。

    */ 

    istr_module[i].object = create using ls_classname

next

 

wf_tv_create()

of_crt_userobject('u_test1' )

 

of_crt_userobject()

//  of_crt_userobject()

/*

    目的:根據類名動態建立類物件

    好處:方便管理

    實現方法:

        datastore

        基類物件       

*/ 

int i

for i = 1 to upperbound(istr_module[])

    if istr_module[i].classname=as_classname then

        this.OpenUserObject (istr_module[i].object,  il_pos_x, il_pos_y )

        istr_module[i].object.setposition(toTop!)  

        exit

    end if

next

 

 

下載:fs2you://Y2FjaGVmaWxlMTgucmF5ZmlsZS5jb20vemgtY24vZG93bmxvYWQvODFjNjUwMzZkZGNhYmNhMzE2M2Q2ZmJmMzNjNzU2MDcvZHluQ3JlYXRlT2JqVGVzdC5yYXJ8MTM0NjE=/

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3090/viewspace-604887/,如需轉載,請註明出處,否則將追究法律責任。

相關文章