Delphi 易混淆的概念

2021-08-21 22:42:36 字數 1821 閱讀 2868

一、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;

當按button2時,將在panel1上建立乙個button,而如果把第6句改為button.parent:=self;按button2時,將在form1上建立乙個button了。如果將第6句刪除,按button2時,什麼都不會發生,這是因為建立方法無法知道應在**顯示構件。

parent屬性和owner屬性是執行階段的屬性,只能在執行階段,通過**設定。  

二、self和sender的區別:

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

procedure tform1.buttonclick(sender:tobject);

begin

if sender=button1 then

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

′   else label2.caption:=′望天上雲卷雲舒′

end;

在此例中,button1,button2共用了buttonclick事件處理程式。

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

function a1(b:integer):integer;

begin

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

end;  

三、clientheight和height,clientwidth和width的區別:

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

從上面陳述可知,理解ower和parent,self和sender,clientheight和height,clientwidth和width區別,對於delphi中正確程式設計是重要的。

易混淆的幾個概念

不知道行不行,大家看下,指點下 謝謝額 1.抽象方法與介面 第乙個還沒寫,那個寫一下貼上來 2.多型與繼承 3.委託類及說明委託 匿名委託 4.反射的方法訪問另乙個類的方法。一 開發oa系統中有公文流轉流程,其中在公文流轉中有公文審核,公文審核是按級審核的,比如發文單位主管審核後,經理要審核,經理審...

併發易混淆概念總結

執行緒a執行邏輯經過x邏輯,執行緒b執行邏輯經過y邏輯。競爭 程式執行結果的正確性,取決於b的y邏輯必須要在a的x邏輯前執行,此時就發生了競爭。感覺這麼解釋還是比較抽象,下面通過乙個c語言的例子來解釋 a執行緒通過for迴圈建立多個對等執行緒,x邏輯表示建立對等執行緒並傳遞引數。b執行緒得到a執行緒...

JQuery中易混淆的概念

向每個匹配的元素內部追加內容。i would like to say i would like to say hello 把所有匹配的元素追加到另乙個 指定的元素集合中。i would like to say i would like to say i would like to say i wou...