aowner , nil 和 self 的區別

2022-09-01 15:24:13 字數 1106 閱讀 5666

一、owner和parent的區別:

parent屬性是指構件的包容器,構件只能在此範圍內顯示和移動。舉例子如下:

(1)在form1的窗體上,放乙個panel1,並將panel1拉大,

(2)在panel1上放一button1;

(3)在form1上放一button2。

現在如果移動panel1,則button1隨著panel1移動,這是因為button1的parent是panel1。現在將button2移到panel1上,再次移動panel1,button2並不跟著移動,這是因為button2的parent是form1。除在窗體設計中,應注意構件的parent是誰外,在動態建立構件時,也應指出構件的parent,如在上例中繼續操作:

1)procedure tform1.button2click(sender:tobjet);

2)var

3) button:tbutton;

4) begin

5) button:tbutton.cerate(self);

6) button.parent=panel1;

7) button.lleft=0;

8) button.top=0;

9) button.caption:='ok';

10) end;

self和sender的區別:

在事件處理程式參數列中,至少含有乙個引數sender,它代表觸發事件處理程式的構件

self是指所編的程式範圍是在哪乙個類中,delphi中大都在窗體範圍內程式設計,因此,self即指窗體,如果在編寫乙個類或是乙個元件,則self指該類或元件。我們在函式或過程的宣告中可看出self是代表哪個元件,即self代表『.』號之前的元件,如在第乙個例子中,self代表tform1。另外應注意,self只能用在類方法中,而不能用在過程或函式中,如下例用法是錯的:function a1(b:integer):integer;

begin

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

end;

self  

在所有物件的方法中都有乙個隱含變數稱為self,self是用來呼叫方法的指向類例項的指標。self  

由編譯器作為乙個隱含引數傳遞給方法。

Self和self的區別

所有的trait都定義了乙個隱式的型別self,它指當前實現此介面的型別。rust官方文件當self用作函式的第乙個引數時,它等價於self self。self引數等價於self self。mut self引數等價於self mut self。方法引數中的self是一種語法糖,是方法的接收型別 例如...

self 和 this 的用法

在訪問php類中的成員變數或方法時,如果被引用的變數或者方法被宣告成const 定義常量 或者static 宣告靜態 那麼就必須使用操作符 反之如果被引用的變數或者方法沒有被宣告成const或者static,那麼就必須使用操作符 另外,如果從類的內部訪問const或者static變數或者方法,那麼就...

Swift3 0 Self和self的區別

相信大家都知道self關鍵字的作用,但你知道swift還有個self關鍵字嗎?self關鍵字只能用在類裡,作為函式返回值型別,表示當前類。類定義.png 這段 裡有self和self,self指向類自身 self只能作為函式關鍵字,setvalue函式的返回值是classa型別。我們看到有個warn...