嘿嘿,大俠看到不要見(jiàn)笑呀...
大家都知道使用DLL的好處.于是我就想把FORM封裝到DLL里面去.
到網(wǎng)上找,發(fā)現(xiàn)是MDI和模式窗體的,非模式的也有很多問(wèn)題.便想自己解決這個(gè)問(wèn)題.
原來(lái)是用DLL創(chuàng)建一個(gè)對(duì)象返回,但發(fā)現(xiàn)有很多的問(wèn)題.
想了半天就去尋根問(wèn)柳吧.
找到了類(lèi).
我就想把類(lèi)封裝進(jìn)DLL,到時(shí)簡(jiǎn)單的返回一個(gè)類(lèi),然后在主程序里操作不就簡(jiǎn)單了?
找了半天發(fā)現(xiàn)了TFormClass,于是試了試從DLL導(dǎo)出來(lái),像一般的程序一樣創(chuàng)建窗體發(fā)現(xiàn)成功.
接著我又想看看其他的類(lèi)是不是也能這樣,就拿TFrame來(lái)實(shí)驗(yàn).
function GetDllFrameClass():TFrame stdcall
第一次是這樣聲明的,失敗.奇怪?!
試了好多次都不行,就想到了TFormClass(Ctrl+左鍵),進(jìn)去看看,發(fā)現(xiàn)是這樣聲明的.
TFormClass = class of TForm
哎呀,恍然大悟!!
class(TFrame) 是聲明一個(gè)類(lèi), 這個(gè)類(lèi)繼承了TFrame類(lèi) f: TFrame 是一個(gè)對(duì)象
class of TFrame 聲明的是類(lèi)類(lèi)型, f:TFrameClass 是一個(gè)類(lèi).
function GetDllFrameClass():TFrame
返回就不是類(lèi)而是對(duì)象了,照TFormClass修改后TFrameClass = class of TFrame
運(yùn)行...成功,
標(biāo)簽:
DLL
FORM
MDI
模式
上傳時(shí)間:
2013-12-10
上傳用戶(hù):kiklkook