

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1Delphi編程資料精華匯總標(biāo)題:父窗體fsmDIFm子窗體fsMDIChild內(nèi)容:設(shè)置父窗體Fmstyle為fsmDIFm子窗體為fsMDIChild1.如果你需要你的子窗體就是設(shè)計(jì)時(shí)的那個(gè)子窗體,用Application.CreateFm(TFmChildFmChild)創(chuàng)建該子窗體,則再使用FmChild.Close時(shí)應(yīng)該不會報(bào)錯(cuò)。2.MDI子窗體的默認(rèn)關(guān)閉操作為最小化,想讓它真正關(guān)閉,在其OnClose中寫Action:=c
2、aFree3.如果你的子窗體只是用TFmChild類創(chuàng)建的實(shí)例(用TFmChild.Create(Application)或TFmChild.Create(self)創(chuàng)建的),則一般不能用FmChild來引用它(如它是全局變量等情況例外)。可以考慮以下幾個(gè)方法:關(guān)閉最早建立的實(shí)例MainFm.MDIChildren[MainFm.MDIChildCount1].close關(guān)閉最晚建立的實(shí)例MainFm.MDIChildren[0].cl
3、ose關(guān)閉當(dāng)前活動實(shí)例MainFm.ActiveChild.close關(guān)閉所有子窗體fi:=0toMainFm.MDIChildCount1doMainFm.MDIChildren[i].closeDelphiMDI應(yīng)用程序高級技巧三則(一)2008072807:47本文介紹幾個(gè)DelphiMDI應(yīng)用程序的編程技巧,雖然純屬技巧,但是本文的方法在正常編程時(shí),通常會被編譯器認(rèn)為是錯(cuò)誤的或是違背編程環(huán)境缺省許可值的。不過有時(shí)為了一些特殊的用
4、途或特殊的視覺效果,按下述的方法一試,可以在明知不可違而違之的情況下,得到很好的結(jié)果。下述各示例均在Delphi6、Windows2000下完成,對涉及的控件命名是任意的,僅為方便說明問題。一、子窗口的隱藏在Delphi編程環(huán)境下,MDI子窗口在運(yùn)行期間可以動態(tài)地被創(chuàng)建和銷毀,但是不能夠被隱藏,如果試圖通過Visible屬性或Hide方法隱藏子窗口,編譯器將報(bào)出“CannothideanMDIChildFm.”的錯(cuò)誤提示!如果某個(gè)子窗口
5、中承載了很多要保留的數(shù)據(jù)而不能銷毀,但又暫時(shí)不想要它出現(xiàn)在屏幕上時(shí),最好的方法就是將其隱藏,待需要時(shí)再將其顯示出來則可。下面兩種方法可以隱藏和顯示子窗口,并避開了編譯器的報(bào)錯(cuò)提示。1)使用WindowsAPI函數(shù)ShowWindow(),示例代碼如下:ShowWindow(ChildFm.HleSW_HIDE)隱藏子窗口ShowWindow(ChildFm.HleSW_RESTE)顯示子窗口說明:使用WindowsAPI直接隱藏子窗口,
6、其子窗口的Visible屬性和其顯示狀態(tài)是不一至的。當(dāng)子窗口不可見時(shí),其Visible屬性可能仍然是True。2)直接設(shè)置子窗口的Visible屬性此時(shí),首先要在需要隱藏的子窗口中重載TCustomFm的VisibleChanging方法,并在其實(shí)現(xiàn)過程中屏蔽掉繼承代碼,否則編譯器將在隱藏子窗口時(shí)報(bào)錯(cuò)。然后就可以直接設(shè)置這個(gè)子窗口的Visible屬性為False或True來隱藏或顯示它了。示例如下:a)子窗口部分…type3Delphi
7、:隱藏MDI子窗口帶來的問題2008072808:43在delphi中隱藏MDI子窗口有兩種方法:1)發(fā)消息及調(diào)用ShowWindow函數(shù):showwindow(childfm.hlesw_hide)隱藏子窗口showwindow(childfm.hlesw_reste)顯示子窗口缺點(diǎn):使用windowsapi直接隱藏子窗口,其子窗口的visible屬性和其顯示狀態(tài)是不一至的。當(dāng)子窗口不可見時(shí),其visible屬性可能仍然是true。2
8、)重載子窗口的visiblechanging方法:privateprocedurevisiblechangingoverride重載proceduretchildfm.visiblechangingbegininherited不能執(zhí)行此語句!end此后就可以直接設(shè)置visible屬性了:childfm.visible:=false隱藏子窗口childfm.visible:=true顯示子窗口缺點(diǎn):當(dāng)子窗口隱藏了后,有些控件的數(shù)據(jù)沒有辦法
9、取到,如TListView為這個(gè)問題曾經(jīng)郁悶了很久,不知道是什么原因。例如:子窗口上listview已經(jīng)有了10行數(shù)據(jù),當(dāng)利用方法2)把使得子窗口不可見了后,調(diào)用childfm.listview.items.count結(jié)果總是0,但是顯示此子窗口后10行數(shù)據(jù)還是在此listview中。所以使用1),在程序中不要調(diào)用visible屬性。使用2),在子窗口隱藏了后不要去取該子窗口的數(shù)據(jù)。delphi怎么讓限制MDI子窗口重復(fù)打開200807
10、2809:18delphi怎么讓限制MDI子窗口重復(fù)打開delphi怎么讓限制MDI子窗口重復(fù)打開beginifNotassigned(fm2)thenbeginApplication.CreateFm(TFm2Fm2)endelsebeginfm2.Showendend這個(gè)到是可以顯示重復(fù)打開但是我關(guān)閉改子窗體后再打開就沒出錯(cuò)拉解決拉在FM2關(guān)閉的時(shí)候先釋放資源在賦空值action:=cafreefm2:=nilDelphi中實(shí)現(xiàn)中實(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java關(guān)閉窗體方法總結(jié)
- 打開和關(guān)閉硬盤各分區(qū)的默認(rèn)共享
- android apn的打開與關(guān)閉
- 第一課 word的打開、關(guān)閉和保存
- vb open 函數(shù)詳解 打開、關(guān)閉、讀、寫文件
- 窗體
- 調(diào)整 windows 窗體的大小和比例
- 用戶窗體的
- 修改(破解)mde(ade)窗體和報(bào)表
- 管理系統(tǒng)的啟動和關(guān)閉
- 窗體底端
- 窗體的透明效果
- vb窗體的常用屬性
- vba中的對話框和自定義窗體
- 窗體夢之隊(duì)游戲
- ug命令保存和關(guān)閉文件
- 柏嵐子村關(guān)閉采石場生態(tài)治理工程
- 柏嵐子村關(guān)閉采石場生態(tài)治理工程
- 窗體的透明度設(shè)置
- 5窗體與控件
評論
0/150
提交評論