新的組件TMyLabel要繼承TLabel類,希望達到的效果是TMyLabel生成一個依附于Panel的Label,請問該如何實作?
uj5u.com熱心網友回復:
這樣的需求,建議你不要從TLabel類繼承,從TCustomControl繼承比較好。uj5u.com熱心網友回復:
那請問妖哥,具體怎么實作呢?
uj5u.com熱心網友回復:
妖哥,我嘗試用TCustomControl繼承,那再建構式中,我生成的TPanel類的parent屬性應該如何賦值?
uj5u.com熱心網友回復:
TLabeledEdit應該和你想實作的一樣,參考VCL的Delphi源代碼最好。//------------
如你所說的情況,繼承TPanel更好,TPanel是有Handle的,而Label是沒有的。 很多時候需要有Handle后,才能做后續的事。
TLabeledEdit本身是以TEdit為主,Label為附。
uj5u.com熱心網友回復:
TMyLabel 繼承 TPanel...再將 TMyLabel 宣告一 TLabel 變數...並在 TMyLabel 動態建立 TLabel...TLabel 的 Parent 的屬性設為 this...若要初設 TLabel 之 Text 時...切記在 TMyLabel:CreateWnd 裡...有關於 Windows UI......uj5u.com熱心網友回復:
我希望TMyLabel組件生成后,改變Panel的尺寸其所屬的Label尺寸相應改變,應該怎樣設定呢?
uj5u.com熱心網友回復:
我希望TMyLabel組件生成后,改變Panel的尺寸其所屬的Label尺寸相應改變,應該怎樣設定呢?其實我覺得你不應該希望定義這樣的TMyLabel組件去滿足你希望的功能。
因為Label并不知道自己將被放置在Panel上面或者Form上面或者Frame上面,換句話說,Label只知道自己下面一級的情況,而并不清楚上一級的情況。
針對你的需求,你反而應當定義一個TMyPanel組件,然后在改變尺寸的時候遍歷Panel里面所有的Label,以實作你想要的功能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/103017.html
標籤:VCL組件使用和開發
