第一章 Delphi快速入門(mén)(三)
1.2.4.3 漢化界面及字體選取
如果您的Windows95系統中安裝了中文系統,對界面做漢化是極其方便的。例如,您可以將Button1的Caption屬性改成“&R矩形”,同樣地可改變其它部件的屬性,將窗體做成中文的操作界面。
若對中、西文字體不滿(mǎn)意,則可以調整Font屬性以滿(mǎn)足您的要求。Font屬性的前面,有一個(gè)小小的“+”號,這說(shuō)明它表征的是集屬性,也即屬性不再是一個(gè)單值,而是一個(gè)屬性的集合。雙擊Font,Object Inspector將在下面擴充顯示它的其它屬性。Color用來(lái)表示文本的顏色,Name定義了字體名,如System,MsSerif,Arial,宋體,黑體等。Style下又擁有四個(gè)屬性:fsBold,fsItalic,fsUnderline和fsTrikeOut。如果想讓字體有其中的某種風(fēng)格,可把相應的屬性值設成True。
Font對話(huà)框可以更為直接地設定以上屬性。Font屬性右側值段有帶省略號的按鈕,單擊它可以激活Font對話(huà)框,如圖1.7所示:
這一對話(huà)框中包含了上述的全部屬性,使得調整字形更為直接方便。但要申明的是,對于窗體Form來(lái)講,Font屬性改變的是窗體中其它部件的顯示字形,它本身的標題字體是缺省的System字體,不能通過(guò)屬性來(lái)改變。
1.2.4.4使用圖形編輯對話(huà)框
最后,我們用圖標按鈕BitBtn1來(lái)控制Shape部件的顏色。選中圖標按鈕,將它的Caption屬性改為“&Color”(或“&C顏色”)??梢栽诎粹o中加入一個(gè)圖標來(lái)形象地表述它的功能。選用Object Inspector中的Glyph屬性,點(diǎn)動(dòng)值段的三點(diǎn)按鈕,彈出圖形編輯對話(huà)框。
您可以通過(guò)圖形編輯對話(huà)框裝入圖標,在本例程中,按動(dòng)Load按鈕,選擇\Delphi 2.0\Images\Buttons\Brush.bmp文件裝入,Bitbtn1就成為一個(gè)圖標按鈕。另外,Delphi還為您提供了豐富的Windows標準圖標按鈕。想運用它們,改變BitBtn的Kind屬性。用戶(hù)不妨嘗試一下,選擇其它值可以生成漂亮的標準按鈕,如OK,Cancel等等。這會(huì )使您在以后的程序開(kāi)發(fā)中受益匪淺。
至此,界面的設計工作就已完成了。運行一下觀(guān)察效果,別忘記保存您的庫單元文件、工程文件?!?/font>
1.2.5 編寫(xiě)事件處理過(guò)程
完成用戶(hù)界面,只是建立了一個(gè)“骨架”,下面要做的便是給程序加入“靈魂”,也即,使它能夠完成所要求的功能?!?/font>
1.2.5.1 為用戶(hù)操作建立“事件”
單擊窗體上的“Rectangle”按鈕,在Object Inspector中,點(diǎn)動(dòng)“Events”頁(yè)標簽,出現事件窗口。在本例程中,我們只關(guān)心OnClick事件,即按鈕接收到左鍵單擊時(shí)應用程序所作出的反應。在Object Inspector窗口中雙擊OnClick事件右端的值段,會(huì )使得Delphi激活庫代碼編輯器,并將光標停在該按鈕所對應的過(guò)程的begin...end之間。“Rectangle”按鈕的功能是使Shape部件的形狀為矩形。聯(lián)系前文我們查看過(guò)的Shape部件的“Shape”屬性,現在,我們要做的是在程序中控制部件的屬性。
在光標處鍵入以下的程序段:
Shape1.Shape := stRectangle;
用同樣的方法,在Button2和Button3的OnClick事件響應內復制以上語(yǔ)句,并分別將賦值號后的屬性值改為stRoundRect和stEllipse。為防止輸入錯誤導致程序運行出錯,建議您使Shape1部件的Object Inspector可見(jiàn),檢視屬性Shape的各個(gè)值并對應輸入。
在代碼編輯器中,Delphi自動(dòng)建立的過(guò)程以關(guān)鍵字Procedure開(kāi)頭,用戶(hù)可以在begin…end之間加入自己的程序,也可以定義變量。這個(gè)程序塊對用戶(hù)的外部事件(此例中是按動(dòng)按鈕)進(jìn)行響應。我們稱(chēng)之為事件處理過(guò)程?!?/font>
1.2.5.2 使用顏色編輯對話(huà)框
圖標按鈕“Color”要控制部件Shape1的顏色,我們可以調入顏色編輯對話(huà)框,用以選擇要變成的顏色。這時(shí)就要用到運行時(shí)不可視的部件ColorDialog了。同樣地使圖標按鈕BitBtn1響應OnClick事件,在它的過(guò)程中加入以下的語(yǔ)句:
ColorDialog1.Execute;
Shape1.Brush.Color := ColorDialog1.Color;
這樣,圖標按鈕的功能也就完成了。
初學(xué)者可能對這樣的程序段不能理解。其實(shí)也是十分簡(jiǎn)單的。查看ColorDialog的Brush屬性,就會(huì )發(fā)現它是個(gè)集屬性,在其下還有一個(gè)Color選項,正是我們想改變的屬性。既然我們想將圖形的顏色變得更加豐富多彩,它本身提供的幾種顏色就已不能滿(mǎn)足要求了。用顏色編輯器可以得到更多的色彩。程序的第一句用Execute方法,使得ColorDialog運行它本身。當用戶(hù)在對話(huà)框中進(jìn)行操作,選定了一種顏色時(shí),即使得TColorDialog對象的一個(gè)屬性Color置為選定顏色的值。將此值賦給Shape1的Brush屬性的子屬性Color,就將選定的顏色加到了圖形上。
讀者的要求可能會(huì )是,怎樣盡快的了解這些這些方法、屬性和域呢?下文對使用聯(lián)機幫助的簡(jiǎn)單介紹可能會(huì )對您有所裨益?!?/font>
1.2.6 使用聯(lián)機幫助Help
事實(shí)上,使用聯(lián)機幫助是您全面地了解可用的方法、對象的域、屬性等信息的最快捷途徑。您還可以參考Delphi給定的例程。較為簡(jiǎn)單有效的方法是使用Help中的搜索功能。如果您對一個(gè)對象知之甚少,選用主菜單中的Help|Help Topics項,在彈出的幫助對話(huà)框,選用Indexes(“索引”)頁(yè),Delphi 2.0會(huì )提示您輸入要檢索的主題。以您想用的部件的對象名作為檢索主題詞,可以參閱很多基本的信息。例如,上文的例程中,在編輯框中鍵入對象的名稱(chēng)TColorDialog,在詞條中就會(huì )出現該主題,按動(dòng)Display按鈕顯示出TColorDialog的幫助信息。查看method,可以找到能應用在CclorDialog1上的方法Execute;仔細閱讀它的功能,上述的編程便不難理解了。Properties中提供了部件的所有屬性,在關(guān)鍵屬性Key Properties前加上了“金鑰匙”,提供了詳盡的說(shuō)明。在Task中您可以查閱該對象的其它相關(guān)主題,還可以參閱Example中的應用例程。用幫助窗口的Edit各種功能進(jìn)行復制、剪貼等操作。
如果您已經(jīng)對對象有一定的了解,想查閱它的具體方法、域等,可以直接用主題詞進(jìn)行檢索?!?/font>
以上,我們已經(jīng)完成了簡(jiǎn)單的例程。運行您的程序,選用各個(gè)按鈕改變圖形的顏色和形狀。如圖1.9所示。雖然它只是一個(gè)“小玩具”,卻直觀(guān)地給您一個(gè)用Delphi編程的印象。對比一下您親手編制的程序量和程序的功能,您就會(huì )理解Delphi為程序員提供了怎樣的方便。
1.3 Delphi 2.0的可視化部件用法簡(jiǎn)介
本節中,我們將較為深入地講解Delphi的部件。這是編制大型復雜應用程序的必由之路。下面,我們將對各種部件分類(lèi)進(jìn)行簡(jiǎn)單的介紹,以便于您在編程時(shí)能夠較快地了解有哪些部件可能會(huì )滿(mǎn)足您的要求,并對其重要的方法、屬性等有一個(gè)大致的了解。
基本技巧、工具的介紹在本章的第4節中,交互閱讀這兩部分,多創(chuàng )制幾個(gè)試驗程序,有助于您迅速進(jìn)入Delphi世界,盡早將這一精妙軟件用于實(shí)際工作中?!?/font>
1.3.1 常用的文本相關(guān)部件
以下的部件以各種格式顯示文本,其中有些是文本和數據輸入的途徑。它們是Label(標簽)、Edit(文本編輯)、MaskEdit(格式編輯)、Memo(備注)、List Box(列表框)、Combo Box(組合框)。除了MaskEdit在Additional頁(yè)之外,其它的都在Standard頁(yè)中?!?/font>
1.3.1.1 Label部件
Label(標簽)一般放在對象的旁邊,用來(lái)標記這些對象,從而對用戶(hù)的操作進(jìn)行提示,也可以用來(lái)顯示其它信息。您可以在標簽中設置熱鍵,也即在Caption屬性值段中輸入含有“&”的字串,當用戶(hù)使用“Alt+關(guān)鍵字母”時(shí),將自動(dòng)選中它所指向的對象。方法是設置Label部件的FocusControl屬性,在值段中,選用與它關(guān)聯(lián)對象的對象名?!?/font>
1.3.1.2 Edit、MaskEdit和Memo部件
Edit、MaskEdit、Memo部件都是用作接收、顯示用戶(hù)輸入文本的。它們具有一些相同的屬性。ReadOnly在運行時(shí)間內控制對象是否可以進(jìn)行Windows的操作,當此值為False時(shí),該框內的文本就不能被復制到剪貼板上。MaxLength可以設置輸入文本的長(cháng)度限制。用PasswordChar屬性可以按照顯示隱蔽密碼的方法顯示用戶(hù)輸入文本,例如,它的缺省值為“*”,運行時(shí),您的輸入將用“*”來(lái)顯示,從而提供了一種安全措施。您可能也發(fā)現了,當一個(gè)字段被加上高亮度顯示時(shí),按鍵操作會(huì )將這一字段刪除,替換成當前的鍵盤(pán)輸入。這種設置為操作提供了方便,您不必每次先刪除原來(lái)的文本;但也可能會(huì )導致誤刪文本。將AutoSelect屬性設置成False,這種替代功能就被取消了。
MaskEdit是格式文本輸入對象。它的EditMask屬性為它提供了過(guò)濾文本的格式。點(diǎn)動(dòng)這一屬性的省略按鈕,會(huì )彈出過(guò)濾編輯對話(huà)框,除了Delphi為您提供的幾種屏蔽格式,您也可以自己編寫(xiě),查閱“幫助”,會(huì )為您提供更詳細的用法介紹。
Memo是備注框,與以上對象不同的是,它可以接收多行文本輸入。將ScrollBars設置成ssVertical,可以為它加上一個(gè)垂直的滾行條。Align屬性調整該對象在窗口中的對齊情況,有alNone(無(wú)對齊指定)、alBottom(底部對齊)、alClient(全窗口顯示)等可以選擇;而Alignment屬性則決定了文本在框中的對齊顯示格式。Lines屬性訪(fǎng)問(wèn)的文本被存儲在一個(gè)TStrings對象中,按動(dòng)它的省略按鈕,可以通過(guò)對話(huà)框向它增加文本,也可以用程序對這一屬性進(jìn)行操作,以達到修改或增加備注文本的目的?!?/font>
1.3.1.3 List Box和Combo Box部件
List Box(列表框)和Combo Box(組合框)都顯示列表項目,所不同的是組合框占用較少的空間。常見(jiàn)的Windows操作系統中,顯示可用磁盤(pán)驅動(dòng)器時(shí),用的就是組合框。列表框則提供了一個(gè)項目列表以供選擇,如Windows打開(kāi)文件操作時(shí)顯示文件列表的就是List Box。
下列程序段將Edit1的文本加入到ListBox1中,并清空Edit1中的文本:
procedure TForm1.AddButtonClick(Sender:TObject);
begin
ListBox1.Items.Add(Edit1.text);
Edit1.Text := ‘’;
end;
常見(jiàn)的組合框初始化用以下的語(yǔ)句可以實(shí)現,它用下拉式列表框的第一項來(lái)初始化組合框的缺省值:
procedure TForm1.ComboBox1Text(Sender:TObject);
begin
if ComboBox1.Text = ‘’then
ComboBox1.Text := ComboBox1.Items.String[1] ;
end;
以上就是文本輸入的基本部件。
1.3.2 按鈕和檢查框部件
1.3.2.1 Button和BitBtn部件
按鈕是Windows常用的部件,前文的例程中我們已經(jīng)基本掌握了Button和BitBtn的主要用法。它們一般用在對話(huà)框中,做為執行某種功能的指示。您也可以為它們設置內置返回功能,將ModelResult屬性加以匹配,可以不用編程,直接實(shí)現系統內置的功能,這一點(diǎn)上和Kind屬性頗類(lèi)似?!?/font>
1.3.2.2 Speed Button部件
Speed Button(加速按鈕)部件在Additional頁(yè)上,是進(jìn)行工具條快速設計的理想部件。它只有一個(gè)位圖,沒(méi)有標題。需要提起讀者注意的是,用多個(gè)Speed Button制作一個(gè)工具條時(shí),必須先放置一個(gè)窗口類(lèi)部件,如Panel(操作板)、Group Box(群組框)等。否則試圖將加速按鈕先制作好再移上去,您會(huì )發(fā)現它會(huì )總是處于窗口類(lèi)部件下面不可見(jiàn)。當然,您可以對加速按鈕進(jìn)行復制、粘貼到窗口類(lèi)部件上處理,那就另當別論了?!?/font>
1.3.2.3 Check Box與Radio Button部件
Check Box(檢查框)和Radio Button(無(wú)線(xiàn)按鈕)部件通常是相提并論的,多用作接收用戶(hù)“是”或“否”的輸入判別。它們一般都是成組的放置在Radio Group或Group Box部件中。所不同的是,成組的Radio Button是“互鎖”的,用戶(hù)選擇定一個(gè)后,其它的將自動(dòng)設置為不選;而Check Box部件則是分立的,您可以同時(shí)選中其中的幾個(gè),也可以一個(gè)都不選?!?/font>
1.3.3 分組、分界部件
分組部件把其它的部件組合成一組,例如上述的無(wú)線(xiàn)按鈕部件Radio Button,就需要放入以下的成組部件中。分界部件用于在窗口中產(chǎn)生邊界和區域,以區別于其它區域?!?/font>
1.3.3.1 Group Box、Radio Group及Panel部件
Group Box(群組框)、Radio Group(選項按鈕組)部件都可以將部件分類(lèi)、成組。它們都有標題,可以用文字表征成組部件的標題或信息。Radio Group可以進(jìn)行Column和Item屬性的設定,以決定其上的無(wú)線(xiàn)按鈕的提示文本及顯示格式。Panel部件也可以達到將部件分組的目的。通過(guò)編程向窗口加一個(gè)操作板部件,以書(shū)寫(xiě)提示和幫助信息,也不失為一種好方法。以上三個(gè)部件都在Standard頁(yè)?!?/font>
1.3.3.2 NoteBook、TabSet及TabbedNoteBook部件
記事本部件NoteBook一般和標簽集部件TabSet共同使用,用來(lái)創(chuàng )制含有標簽的重疊多窗體窗口。Pages屬性包含了一個(gè)頁(yè)名列表,在編程時(shí),將TabSet的Tabs屬性設置成NoteBook的Pages屬性,就可以使頁(yè)標簽和相應的窗體對應起來(lái)。
另外一個(gè)部件TabbedNoteBook是帶有標簽的多窗體窗口,不過(guò),它的頁(yè)標簽設在窗口的上面。它們相當于多個(gè)分組部件的集合,每次查看其中的一頁(yè)。以上三個(gè)部件在Win 3.1頁(yè)。
在Win95頁(yè)上還有TabControl、PageControl等部件。它們對于生成Windows 95風(fēng)格的標簽集是很重要的?!?/font>
1.3.3.3 分界部件
在Win 3.1頁(yè)上,還有Header(表頭)部件,它在窗口中產(chǎn)生一個(gè)凸起的題條,提供了一個(gè)可視化的文本顯示區域。Additional頁(yè)的Bevel(立體框)部件提供了一個(gè)方框,它的單一線(xiàn)條或整個(gè)邊框都可以通過(guò)Style屬性設置為外凸或內凹,可以美化窗口。在Win95頁(yè)上,HeaderControl、StatusBar等部件,為您使用Winows95風(fēng)格的界面提供了重要元素?!?/font>
1.3.4 圖形、圖象部件
1.3.4.1 Image部件
圖象部件Image在Additional頁(yè)上,用來(lái)在窗口中顯示一幅圖片,可以在picture屬性中調入圖象文件。Delphi支持位圖(.BMP)、圖標(.ICO)、圖元(.WFM)三種文件格式。比較重要的屬性是Autosize和Strech。它們決定了圖象在窗口中的顯示尺寸。Autosize屬性為True表示按原尺寸顯示,Strech屬性為True表示圖象按對象圖框的大小顯示,這時(shí)圖象的大小可以人為改變。
聯(lián)系客服