我有一個應用程序使用TNotebook
切換不同的子頁面,顯示。TNotebook或TPageControl
現在我必須稍微擴展這段代碼(即添加頁面並更改大小)。
有人告訴我TNotebook
不應該再使用。在Delphi的幫助下,我發現「新應用程序應該使用TPageControl」。
我的問題:我應該重構代碼以使用TPageControl
而不是TNotebook
? TNotebook的缺點是什麼?
我有一個應用程序使用TNotebook
切換不同的子頁面,顯示。TNotebook或TPageControl
現在我必須稍微擴展這段代碼(即添加頁面並更改大小)。
有人告訴我TNotebook
不應該再使用。在Delphi的幫助下,我發現「新應用程序應該使用TPageControl」。
我的問題:我應該重構代碼以使用TPageControl
而不是TNotebook
? TNotebook的缺點是什麼?
在我看來,TPageControl
的主要優勢在於它是一個系統本地控件,與TNotebook
不同。當您使用系統本機控件時,該控件由系統繪製,因此會採用您使用的操作系統原生的外觀和外觀。
當應用程序在新版本的操作系統上運行時,控件會自動獲取該操作系統本機的外觀。更重要的是,這種行爲是系統原生的。我的意思是控制器響應鍵盤輸入的方式等等。這是TPageControl
的問題,因爲系統不提供那麼多默認行爲。但作爲一般規則,建議是合理的。
當系統本機控件都不符合您的特定要求時,您可能需要使用非本機控件。然後你必須努力確保你的控制適應周圍環境。但是,當有系統本地控制時,除非有很強的理由避免它,否則應該使用它。
在我目前的應用程序TNotebook使用沒有選項卡,只是要切換,這些控件是可見的。所以我認爲@Arioch'關於VCL風格的評論不適用(不確定「結構視圖」)? 我知道在這個答案中的共同考慮 - 但我沒有看到任何具體的缺點(現在),所以我認爲,我不會改變代碼(目前)。謝謝。 –
很明顯,你選擇的是你自己的選擇,但我不認爲在這方面還有很多要說的比我已經做的更多。我想你知道TPageControl也可以在這個「嚮導」模式下使用,沒有標籤顯示。當你這樣做時,你的應用程序將看起來像標準主題系統對話框。所以這取決於您是想使用本機外觀還是使用您自己的應用程序的個人外觀。 –
TNotebook的另一個缺點是它排除了從繼承中放置它的形式或框架。
歡迎來到SO。我認爲你的回答應該是一個評論,但新用戶可以在SO中做的事情非常有限,直到他們獲得了足夠的聲望點。你提出了一個好的觀點,所以我鼓勵你的答案。 – MartynA
TNotebook有一些錯誤,比如缺少對VCL樣式和結構視圖的支持。在德爾福5我最喜歡TNotebook它的簡單,但最近在XE2中的應用程序我切換到TPageControl整體更流暢的整合 –
@ Arioch'The你應該作爲答案 –
@TobyAllen我認爲會有人比事實更多的事實模糊的印象,我可以提供 –