Owner,Parent,Self,Sender,Clientheight,Height(轉)

shorish發表於2010-07-14

一、OwnerParent的區別:

Parent屬性是指構件的包容器,構件只能在此範圍內顯示和移動。

Owner屬性是指構件的所有者,它負責構件的建立和釋放。create方法應帶有表示構件所有者的引數,如在上例中,構件所有者是窗體,即self   Parent屬性和Owner屬性是執行階段的屬性,只能在執行階段,透過程式碼設定。

Owner為建立者,Parent為容器 他們的型別不同,

OwnerTComponent(元件),ParentTWinControl(窗體控制元件)

二、SelfSender的區別:

  在事件處理程式參數列中,至少含有一個引數Sender,它代表觸發事件處理程式的構件,如在上例中,Sender就指Button2,有了Sender引數,可以使多個構件共用相同的事件處理程式,如下例:

  Procedure Tform1.Buttonclick(Sender:Tobject);

  Begin

  If sender=button1 then

  Label1.caption:=′看庭前花開花落

  Else Label2.caption:=′望天上雲捲雲舒′

  End

  在此例中,Button1,Button2共用了Buttonclick事件處理程式。

(***本文出處:南山古桃(nsgtao)的百度空間:****)

  Self是指所編的程式範圍是在哪一個類中,Delphi中大都在窗體範圍內程式設計,因此,self即指窗體,如果在編寫一個類或是一個元件,則self 指該類或元件。我們在函式或過程的宣告中可看出self是代表哪個元件,即self代表‘.’號之前的元件,如在第一個例子中,self代表 Tform1。另外應注意,self只能用在類方法中,而不能用在過程或函式中,如下例用法是錯的:

Function a1(B:Integer):Integer;

  Begin

  ……

  Button:=tbutton.create(self);……

  End

三、ClientheightHeight,ClientwidthWidth的區別:

  對於一般的構件而言,Height就是Clientheight,Width就是Clientwidth,而對於窗體而言,Height是包括標題條在內的高度,而Clientheight是指窗體工作區的高度。同理,Clientwidth是指定窗體工作區的寬度。

  從上面陳述可知,理解OwerParent,SelfSenderClientheightHeight,ClientwidthWidth區別,對於Delphi中正確程式設計是重要的。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/114037/viewspace-1035275/,如需轉載,請註明出處,否則將追究法律責任。

相關文章