自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談Delphi 7下VCL組件屬性

開(kāi)發(fā) 開(kāi)發(fā)工具
有些屬性用VCL類(lèi)的一個(gè)實(shí)例作為其基本數(shù)據(jù)字段,例如,Delphi組件選項(xiàng)板上的Standard標(biāo)簽中的Memo組件的Line屬性。今天我們就一起來(lái)看看Delphi 7下Visual Component Library組件屬性。

  屬性是組件元素,它用來(lái)控制組件操作,很多組件都具有相同的屬性,例如,所有可視化組件都有Top和Left屬性,這兩個(gè)屬性不但在設(shè)計(jì)階段控制組件在窗體上的位置,在運(yùn)行時(shí)間也一樣。所有的組件都有Owner屬性,VCL用此屬性來(lái)跟蹤子窗體組件的父窗體或者跟蹤擁有子組件的組件。

  一、屬性和Object Inspector

  一個(gè)圖形比數(shù)千字的文字說(shuō)明強(qiáng)好多倍,默認(rèn)情況下啟動(dòng)Delphi 7 ,會(huì)看到一個(gè)空白窗體和它的Object Inspector,如下圖:

Tip

  一般情況下我們不希望以開(kāi)啟Delphi7就自動(dòng)創(chuàng)建一個(gè)空白Application,我們可以通過(guò)在Delphi7的快捷圖標(biāo)中設(shè)置,讓它默認(rèn)不創(chuàng)建空白窗體:

  1、在Delphi7的快捷圖標(biāo)上點(diǎn)擊右鍵菜單選擇【屬性】,打開(kāi)屬性對(duì)話(huà)框;

  2、在其中的“目標(biāo)”中最后輸入“-np”,代表不創(chuàng)建工程。

  當(dāng)啟動(dòng)Delphi后,Object Inspector的大小要基于當(dāng)前屏幕的分辨率,一般喜歡使Object Inspector達(dá)到屏幕允許的最大高度,這樣一次就可以最大限度地查看屬性。點(diǎn)擊Properties標(biāo)簽,就會(huì)顯示當(dāng)前選中組件的屬性,組件屬性是按字母順序排列的。

  每個(gè)屬性都有一個(gè)與之有關(guān)的基本數(shù)據(jù)字段,但屬性本身不是類(lèi)數(shù)據(jù)字段,改變屬性常導(dǎo)致幕后的代碼運(yùn)行。

  New Term

  屬性常系于存取方法(access methods),當(dāng)屬性被修改時(shí),此存取方法就要執(zhí)行。

  二、改變屬性值

  在設(shè)計(jì)階段,屬性是可以改變的,并且在運(yùn)行階段它也是可以改變的。不論在哪種情況下,如果此屬性有一個(gè)存取方法,當(dāng)屬性被修改時(shí),此存取方法就會(huì)被調(diào)用和執(zhí)行。您可以試著在Object Inspector中改變窗體TForm的Left屬性并觀察窗體在屏幕上的運(yùn)動(dòng),這個(gè)就是一個(gè)在設(shè)計(jì)階段改變屬性的示例。

  這就是VCL強(qiáng)大功能之一,在Delphi中使用它的方法為:可以不停地觀看設(shè)計(jì)改變的屏幕結(jié)果,但不是所有的屬性在設(shè)計(jì)階段都能在窗體上顯示可視變化。

  要改變運(yùn)行階段屬性,只需簡(jiǎn)單地給屬性賦值就可以了。當(dāng)給屬性賦值時(shí),VCL將幕后調(diào)用這個(gè)屬性的存取方法。為了改變運(yùn)行階段Left屬性,代碼如下:

  Left := 200;

  就Left屬性而言,VCL將移動(dòng)和重畫(huà)此窗體。

  New Term

  屬性存取說(shuō)明符(Property Access Specifiers),屬性有兩個(gè)存取說(shuō)明符,在讀取和修改屬性時(shí)就會(huì)用它們,這就是讀說(shuō)明符(read specifier)和寫(xiě)說(shuō)明符(write specifier)。

  當(dāng)讀或?qū)憣傩詴r(shí),與之相關(guān)的方法就會(huì)自動(dòng)被調(diào)用。在前面的例子中,當(dāng)給屬性賦值時(shí),就在存取一個(gè)寫(xiě)說(shuō)明符。實(shí)際上,VCL檢查寫(xiě)說(shuō)明符是否存在存取方法,如果存在,就會(huì)調(diào)用其存取方法,若存取方法不存在,VCL將給與此屬性有關(guān)的數(shù)字段賦一個(gè)新值。

  當(dāng)引用一個(gè)屬性時(shí)(把屬性放在等號(hào)右邊),就會(huì)存取讀說(shuō)明符:

  X := Form1.Left;

  在這種情況下,VCL調(diào)用讀說(shuō)明符來(lái)讀取Left屬性的值,在很多情況下,讀說(shuō)明符都會(huì)返回屬性的當(dāng)前值。

  三、屬性的性質(zhì)

  屬性的屬性是由組件編寫(xiě)者決定的,一個(gè)屬性可以是只讀的,一個(gè)只讀屬性只能被讀取——它的值也可以被檢查——但不能寫(xiě),換句話(huà)說(shuō),可以獲取屬性的值,但不能改變它的值,在極少情況下,屬性是只寫(xiě)的(一個(gè)只能寫(xiě)而不能讀的屬性在大部分情況下是沒(méi)有意義的),他顯然與只讀屬性是對(duì)立的。

  最后,還有一些屬性只能在運(yùn)行階段聲明,一個(gè)唯運(yùn)行階段聲明的屬性只能在運(yùn)行階段存取而不能再設(shè)計(jì)階段存取,因?yàn)槲ㄟ\(yùn)行階段屬性在設(shè)計(jì)階段不能用,它在Object Inspector上不能顯示,唯運(yùn)行階段屬性也可以聲明成只讀屬性,這意味著只有要運(yùn)行階段才能存取它,并且只能讀。

  四、屬性類(lèi)型

  有些屬性用VCL類(lèi)的一個(gè)實(shí)例作為其基本數(shù)據(jù)字段,例如,Delphi組件選項(xiàng)板上的Standard標(biāo)簽中的Memo組件的Line屬性,如下:

Note

  省略號(hào)按鈕表示此屬性可以用屬性編輯器編輯。通過(guò)點(diǎn)擊省略號(hào)按鈕或雙擊屬性值,就可以帶出屬性編輯器。

  Memo組件的Line屬性是TStrings類(lèi)的一個(gè)實(shí)例,當(dāng)雙擊Value欄時(shí),就會(huì)顯示字符串編輯器,此時(shí)可以輸入應(yīng)用程序運(yùn)行時(shí)想要在Memo組件中顯示的字符串。

  Font屬性也是VCL類(lèi)的一個(gè)實(shí)例,字體包括字體名稱(chēng)、顏色和字體大小等內(nèi)容。注意在屬性Font前面有一個(gè)加號(hào),這表示這個(gè)屬性有一些可分別設(shè)置的子屬性。雙擊Font屬性名,就會(huì)擴(kuò)展開(kāi)來(lái),如下:

  有些屬性是集合,例如Font屬性中的Style屬性就是集合。Style前面也有一個(gè)加號(hào),雙擊就會(huì)看到Style中的內(nèi)容。一個(gè)集合可以是空集或者是包含一個(gè)或多個(gè)值。

  有些屬性可以是枚舉類(lèi)型的,即一個(gè)所有可能選擇的清單。枚舉類(lèi)型和集不一樣,只有一個(gè)選項(xiàng)可以選擇,集可以包含空集或者任意數(shù)目的選擇項(xiàng)。例如Cursor屬性就是一個(gè)很好的例子,如下:

  運(yùn)行Delphi 7,新建一個(gè)Application,然后花些時(shí)間來(lái)體驗(yàn)一些不同組件和它們的屬性。

  屬性規(guī)則

  屬性表現(xiàn)像一個(gè)類(lèi)字段,并且可以像類(lèi)字段一樣存取。

  屬性不是類(lèi)字段,它是特殊的類(lèi)成員。

  當(dāng)寫(xiě)屬性時(shí)(給屬性賦值),屬性經(jīng)常調(diào)用一個(gè)存取方法,但并不總是遮掩個(gè),這樣一來(lái)此具體組件是怎么被寫(xiě)的。

  公布的(published)屬性通常有缺省值,一個(gè)組件第一次啟用時(shí),其缺省值就是Object Inspector中初始顯示的值,并且如果沒(méi)有特別的賦值,它就用這個(gè)值。

  屬性可以被設(shè)計(jì)成讀/寫(xiě)、只讀和只寫(xiě)。

  唯運(yùn)行階段屬性在Object Inspector中不顯示,并且只能在運(yùn)行階段修改。

  屬性類(lèi)型包括簡(jiǎn)單數(shù)據(jù)類(lèi)型、字符串、數(shù)組、集合、枚舉和VCL類(lèi)對(duì)象。

原文鏈接:http://www.cnblogs.com/pchmonster/archive/2012/01/09/2316952.html

【編輯推薦】

  1. Jailer 3.6.2發(fā)布 強(qiáng)大的智能數(shù)據(jù)提取工具
  2. Web開(kāi)發(fā)者必備的JavaScript單元測(cè)試工具
  3. Ruby開(kāi)發(fā)者應(yīng)該熟悉的10個(gè)工具
  4. 10款非常優(yōu)秀的HTML 5開(kāi)發(fā)工具推薦
  5. 9月10款非常有用的jQuery工具提示插件推薦
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2012-01-04 10:07:56

Delphi

2011-07-13 10:36:53

Delphi

2009-07-15 13:06:38

Swing組件

2023-02-27 09:10:57

前端組件設(shè)計(jì)

2009-09-17 17:13:54

C#數(shù)組

2009-06-25 13:03:48

JSF的UI組件

2009-06-24 17:05:10

2009-08-10 10:19:47

ASP.NET組件設(shè)計(jì)

2009-09-21 17:30:25

組件復(fù)用服務(wù)復(fù)用

2024-07-08 08:53:52

2021-08-31 14:56:51

鴻蒙HarmonyOS應(yīng)用

2009-07-02 13:31:13

JSP組件

2009-06-23 15:30:20

jBPMMySQL

2009-12-25 15:20:59

ADO CONNECT

2009-07-02 17:06:36

JSP中的PageEn

2009-02-12 17:02:49

2009-03-12 08:54:43

Windows 7Mac

2023-12-29 08:37:59

2017-04-11 16:00:40

Linuxsyslog進(jìn)程

2009-04-27 13:42:38

SQL Server Hierarchyid微軟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)