後一頁
前一頁
回目錄
回首頁
第一章 Delphi快速入門(三)

1.2.4.3 漢化介面及字形選取 

         如果您的Windows95系統中裝設了中文系統,對介面做漢化是極其方便的。例如,您可以將Button1Caption屬性改成“&R矩形”,同樣地可改變其它部件的屬性,將窗體做成中文的操作介面。

         若對中、西文字形不滿意,則可以調整Font屬性以滿足您的要求。Font屬性的前面,有一個小小的“+”號,這敘述它表征的是集屬性,也即屬性不再是一個單值,而是一個屬性的集合。連續按兩下FontObject Inspector將在下面擴充顯示它的其它屬性。Color用來表示文本的顏色,Name定義了字形名,如System,MsSerif,Arial,宋體,黑體等。Style下又擁有四個屬性:fsBold,fsItalic,fsUnderlinefsTrikeOut。如果想讓字形有其中的某種風格,可把相應的屬性值設成True

          Font對話方塊可以更為直接地設定以上屬性。Font屬性右側值段有帶省略號的按鈕,按一下它可以激活Font對話方塊,如圖1.7所示:

          這一對話方塊中包含了上述的全部屬性,使得調整字形更為直接方便。但要申明的是,對於窗體Form來講,Font屬性改變的是窗體中其它部件的顯示字形,它本身的標題字形是缺省的System字形,不能通過屬性來改變。

1.2.4.4使用圖形編輯對話方塊 

          最後,我們用圖示按鈕BitBtn1來控制Shape部件的顏色。選中圖示按鈕,將它的Caption屬性改為“&Color(或“&C顏色”)。可以在按鈕中加入一個圖示來形象地表述它的功能。選用Object Inspector中的Glyph屬性,點動值段的三點按鈕,彈出圖形編輯對話方塊。

           您可以通過圖形編輯對話方塊載入圖示,在本例程中,按動Load按鈕,選擇\Delphi 2.0\Images\Buttons\Brush.bmp文件載入,Bitbtn1就成為一個圖示按鈕。另外,Delphi還為您提供了豐富的Windows標準圖示按鈕。想運用它們,改變BitBtnKind屬性。用戶不妨嘗試一下,選擇其它值可以產生漂亮的標準按鈕,如OK,Cancel等等。這會使您在以後的程式開發中受益匪淺。

至此,介面的設計工作就已完成了。執行一下觀察效果,別忘記存檔您的庫單元文件、工程文件。 

1.2.5 編寫事件處理過程 

           完成用戶介面,只是建立了一個“骨架”,下面要做的便是給程式加入“靈魂”,也即,使它能夠完成所要求的功能。 

1.2.5.1 為用戶操作建立“事件”

          按一下窗體上的“Rectangle”按鈕,在Object Inspector中,點動“Events”頁標籤,出現事件視窗。在本例程中,我們只關心OnClick事件,即按鈕接收到左鍵按一下時應用程式所作出的反應。在Object Inspector視窗中連續按兩下OnClick事件右端的值段,會使得Delphi激活庫代碼編輯器,並將遊標停在該按鈕所對應的過程的begin...end之間。“Rectangle”按鈕的功能是使Shape部件的形狀為矩形。聯繫前文我們查看過的Shape部件的“Shape”屬性,現在,我們要做的是在程式中控制部件的屬性。

         在遊標處鍵入以下的程式段: 

  Shape1.Shape := stRectangle; 

          用同樣的方法,在Button2Button3OnClick事件響應內復制以上語句,並分別將賦值號後的屬性值改為stRoundRectstEllipse。為防止輸入錯誤導致程式執行出錯,建議您使Shape1部件的Object Inspector可見,檢視屬性Shape的各個值並對應輸入。

  在代碼編輯器中,Delphi自動建立的過程以關鍵字Procedure開頭,用戶可以在beginend之間加入自己的程式,也可以定義變數。這個程式塊對用戶的外部事件(此例中是按動按鈕)進行響應。我們稱之為事件處理過程。 

1.2.5.2 使用顏色編輯對話方塊 

       圖示按鈕“Color”要控制部件Shape1的顏色,我們可以調入顏色編輯對話方塊,用以選擇要變成的顏色。這時就要用到執行時不可視的部件ColorDialog了。同樣地使圖示按鈕BitBtn1響應OnClick事件,在它的過程中加入以下的語句:

  ColorDialog1.Execute;

  Shape1.Brush.Color := ColorDialog1.Color; 

這樣,圖示按鈕的功能也就完成了。

        初學者可能對這樣的程式段不能理解。其實也是十分簡單的。查看ColorDialogBrush屬性,就會發現它是個集屬性,在其下還有一個Color選項,正是我們想改變的屬性。既然我們想將圖形的顏色變得更加豐富多彩,它本身提供的幾種顏色就已不能滿足要求了。用顏色編輯器可以得到更多的色彩。程式的第一句用Execute方法,使得ColorDialog執行它本身。當用戶在對話方塊中進行操作,選取了一種顏色時,即使得TColorDialog物件的一個屬性Color置為選取顏色的值。將此值賦給Shape1Brush屬性的子屬性Color,就將已選的顏色加到了圖形上。

讀者的要求可能會是,怎樣儘快的了解這些這些方法、屬性和欄位呢?下文對使用連線輔助敘述的簡單介紹可能會對您有所裨益。 

1.2.6 使用連線輔助敘述Help 

        事實上,使用連線輔助敘述是您全面地了解可用的方法、物件的欄位、屬性等資訊的最快捷途徑。您還可以參考Delphi給定的例程。較為簡單有效的方法是使用Help中的搜索功能。如果您對一個物件知之甚少,選用主選擇表中的Help|Help Topics項,在彈出的輔助敘述對話方塊,選用Indexes(“索引”)頁,Delphi 2.0會提示您輸入要檢索的主題。以您想用的部件的物件名作為檢索主題詞,可以參閱很多基本的資訊。例如,上文的例程中,在編輯框中鍵入物件的標簽TColorDialog,在詞條中就會出現該主題,按動Display按鈕顯示出TColorDialog的輔助敘述資訊。查看method,可以找到能應用在CclorDialog1上的方法Execute;仔細閱讀它的功能,上述的程式設計便不難理解了。Properties中提供了部件的所有屬性,在關鍵屬性Key Properties前加上了“金鑰匙”,提供了詳盡的敘述。在Task中您可以查閱該物件的其它相關主題,還可以參閱Example中的應用例程。用輔助敘述視窗的Edit各種功能進行復制、剪貼等操作。

如果您已經對物件有一定的了解,想查閱它的具體方法、欄位等,可以直接用主題詞進行檢索。 

         以上,我們已經完成了簡單的例程。執行您的程式,選用各個按鈕改變圖形的顏色和形狀。如圖1.9所示。雖然它只是一個“小玩具”,卻直觀地給您一個用Delphi程式設計的印象。對比一下您親手編制的程式量和程式的功能,您就會理解Delphi為程式員提供了怎樣的方便。

1.3 Delphi 2.0的可視化部件用法簡介 

          本節中,我們將較為深入地講解Delphi的部件。這是編制大型複雜應用程式的必由之路。下面,我們將對各種部件分類進行簡單的介紹,以便於您在程式設計時能夠較快地了解有哪些部件可能會滿足您的要求,並對其重要的方法、屬性等有一個大致的了解。

  基本技巧、工具的介紹在本章的第4節中,互動閱讀這兩部分,多創制幾個試驗程式,有助於您迅速進入Delphi世界,盡早將這一精妙軟體用於實際工作中。 

1.3.1 常用的文本相關部件 

        以下的部件以各種格式顯示文本,其中有些是文本和數據輸入的途徑。它們是Label(標籤)Edit(文本編輯)MaskEdit(格式編輯)Memo(備註)List Box(列示方塊)Combo Box(群群組合框)。除了MaskEditAdditional頁之外,其它的都在Standard頁中。 

1.3.1.1 Label部件 

        Label(標籤)一般放在物件的旁邊,用來標記這些物件,從而對用戶的操作進行提示,也可以用來顯示其它資訊。您可以在標籤中設定熱鍵,也即在Caption屬性值段中輸入含有“&”的字串,當用戶使用“Alt+關鍵字母”時,將自動選中它所指向的物件。方法是設定Label部件的FocusControl屬性,在值段中,選用與它關聯物件的物件名。 

1.3.1.2 EditMaskEditMemo部件  

        EditMaskEditMemo部件都是用作接收、顯示用戶輸入文本的。它們具有一些相同的屬性。ReadOnly在執行時間內控制物件是否可以進行Windows的操作,當此值為False時,該框內的文本就不能被復制到剪貼簿上。MaxLength可以設定輸入文本的長度限制。用PasswordChar屬性可以按照顯示隱蔽密碼的方法顯示用戶輸入文本,例如,它的缺省值為“*”,執行時,您的輸入將用“*”來顯示,從而提供了一種安全措施。您可能也發現了,當一個欄位被加上高光度顯示時,按鍵操作會將這一欄位解除,覆寫成目前的鍵盤輸入。這種設定為操作提供了方便,您不必每次先解除原來的文本;但也可能會導致誤刪文本。將AutoSelect屬性設定成False,這種替代功能就被取消了。

         MaskEdit是格式文本輸入物件。它的EditMask屬性為它提供了過濾文本的格式。點動這一屬性的省略按鈕,會彈出過濾編輯對話方塊,除了Delphi為您提供的幾種屏蔽格式,您也可以自己編寫,查閱“輔助敘述”,會為您提供更詳細的用法介紹。

         Memo是備註框,與以上物件不同的是,它可以接收多行文本輸入。將ScrollBars設定成ssVertical,可以為它加上一個垂直的滾行條。Align屬性調整該物件在視窗中的對齊情況,有alNone(無對齊指定)alBottom(底部對齊)alClient(全視窗顯示)等可以選擇;而Alignment屬性則決定了文本在框中的對齊顯示格式。Lines屬性存取的文本被存儲在一個TStrings物件中,按動它的省略按鈕,可以通過對話方塊向它增加文本,也可以用程式對這一屬性進行操作,以達到修改或增加備註文本的目的。 

1.3.1.3 List BoxCombo Box部件 

          List Box(列示方塊)Combo Box(群群組合框)都顯示清單項目,所不同的是群群組合框佔用較少的空間。常見的Windows作業系統中,顯示可用磁碟磁碟機時,用的就是群群組合框。列示方塊則提供了一個項目清單以供選擇,如Windows打開文件操作時顯示文件清單的就是List Box

  下列程式段將Edit1的文本加入到ListBox1中,並清空Edit1中的文本: 

 procedure TForm1.AddButtonClick(Sender:TObject);

 begin

ListBox1.Items.Add(Edit1.text);

Edit1.Text := ‘’;

 end; 

常見的群群組合框初始化用以下的語句可以實現,它用下拉式列示方塊的第一項來初始化群群組合框的缺省值: 

procedure TForm1.ComboBox1Text(Sender:TObject);

begin

if ComboBox1.Text = ‘’then

ComboBox1.Text := ComboBox1.Items.String[1] ;

   end;

以上就是文本輸入的基本部件。 

1.3.2 按鈕和檢查框部件 

1.3.2.1 ButtonBitBtn部件

        按鈕是Windows常用的部件,前文的例程中我們已經基本掌握了ButtonBitBtn的主要用法。它們一般用在對話方塊中,做為執行某種功能的指示。您也可以為它們設定內置返回功能,將ModelResult屬性加以匹配,可以不用程式設計,直接實現系統內置的功能,這一點上和Kind屬性頗類似。 

1.3.2.2 Speed Button部件 

         Speed Button(加速按鈕)部件在Additional頁上,是進行工具條快速設計的理想部件。它只有一個點陣圖,沒有標題。需要提起讀者注意的是,用多個Speed Button製作一個工具條時,必須先放置一個視窗類部件,如Panel(操作板)Group Box(群群群組框)等。否則試圖將加速按鈕先製作好再移上去,您會發現它會總是處於視窗類部件下面不可見。當然,您可以對加速按鈕進行復制、貼上去到視窗類部件上處理,那就另當別論了。 

1.3.2.3 Check BoxRadio Button部件 

        Check Box(檢查框)Radio Button(無線按鈕)部件通常是相提並論的,多用作接收用戶“是”或“否”的輸入判別。它們一般都是成群群組的放置在Radio GroupGroup Box部件中。所不同的是,成群群組的Radio Button是“互鎖”的,用戶選擇定一個後,其它的將自動設定為不選;而Check Box部件則是分立的,您可以同時選中其中的幾個,也可以一個都不選。 

1.3.3 分群群組、分界部件 

        分群群組部件把其它的部件群群組合成一群群組,例如上述的無線按鈕部件Radio Button,就需要放入以下的成群群組部件中。分界部件用於在視窗中產生邊界和區欄位,以區別於其它區欄位。 

1.3.3.1 Group BoxRadio GroupPanel部件 

        Group Box(群群群組框)Radio Group(選項按鈕群群組)部件都可以將部件分類、成群群組。它們都有標題,可以用文字表征成群群組部件的標題或資訊。Radio Group可以進行ColumnItem屬性的設定,以決定其上的無線按鈕的提示文本及顯示格式。Panel部件也可以達到將部件分群群組的目的。通過程式設計向視窗加一個操作板部件,以書寫提示和輔助敘述資訊,也不失為一種好方法。以上三個部件都在Standard頁。 

1.3.3.2 NoteBookTabSetTabbedNoteBook部件 

        記事本部件NoteBook一般和標籤集部件TabSet共同使用,用來創制含有標籤的重疊多窗體視窗。Pages屬性包含了一個頁名清單,在程式設計時,將TabSetTabs屬性設定成NoteBookPages屬性,就可以使頁標籤和相應的窗體對應起來。

        另外一個部件TabbedNoteBook是帶有標籤的多窗體視窗,不過,它的頁標籤設在視窗的上面。它們相當於多個分群群組部件的集合,每次查看其中的一頁。以上三個部件在Win 3.1頁。

        在Win95頁上還有TabControlPageControl等部件。它們對於產生Windows 95風格的標籤集是很重要的。 

1.3.3.3 分界部件 

         在Win 3.1頁上,還有Header(表頭)部件,它在視窗中產生一個凸起的題條,提供了一個可視化的文本顯示區欄位。Additional頁的Bevel(立體框)部件提供了一個方框,它的單一線條或整個邊框都可以通過Style屬性設定為外凸或內凹,可以美化視窗。在Win95頁上,HeaderControlStatusBar等部件,為您使用Winows95風格的介面提供了重要元素。 

1.3.4 圖形、影像部件 

1.3.4.1 Image部件

         影像部件ImageAdditional頁上,用來在視窗中顯示一幅圖片,可以在picture屬性中調入影像文件。Delphi支援點陣圖(.BMP)、圖示(.ICO)、圖元(.WFM)三種文件格式。比較重要的屬性是AutosizeStrech。它們決定了影像在視窗中的顯示尺寸。Autosize屬性為True表示按原尺寸顯示,Strech屬性為True表示影像按物件圖框的大小顯示,這時影像的大小可以人為改變。


後一頁
前一頁
回目錄
回首頁