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