程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第四章-文本編輯器的設計(一)(4)

第四章-文本編輯器的設計(一)(4)

編輯:Delphi

TMemo部件提供了一組關於選擇文本的屬性和方法。如果想在部件成為當前控件時自動選擇文本,可設置 AutoSelect 屬性。運行時可用SelectAll 方法選中部件的全部文本。 Selstart屬性返回選中文本的開始位置,SelText 包含著被選中的文本。SelLength屬性返回選中文本的長度,這兩個屬性可用於字符串的查找和替換。下一節將詳細討論。

TMemo的Modified屬性是一個運行時才能得到的屬性,可判斷部件被創建時或Modified屬性最後一次設置成假值之後,部件上的文本是否修改。如果修改了,Modified 將設成真值,反之假值。

例程中在關閉文件時將測試文件的modified屬性,如果文件修改後尚未保存, 將出現對話框,詢問用戶是否保存文件,其代碼如下: 

  procedure TEditForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

var

DialogValue: Integer;

FName: string;

begin

if Memo1.Modified then

begin

FName := Caption;

DialogValue := MessageDlg(Format(SWarningText, [FName]), mtConfirmation,

[mbYes, mbNo, mbCancel], 0);

case DialogValue of

id_Yes: Save1Click(Self);

id_Cancel: CanClose := False;

end;

end;

end; 

4.4 常用對話框的使用 

  Delphi的可視部件類庫(Vistual Component Liberty)中,有一組對話框部件,在對象選擇板的Dialog 頁面中可以找到。 本節著重介紹與文件編輯有關的字體對話框(TFontDialog Componement),查找對話框(TFindDialog Componement) ,替換對話框(TReplace Dialog Componement),文件對開對話框(TOpenDIalog Componement).

應用這幾個對話框可對文件進行字體設置、查找、替換等操作,但需要編寫相應的代碼。 

4.4.1字體對話框部件 

字體對話框部件在應用程序中產生字體對話框, 用戶可在對話框中進行字體選擇和屬性設置。用戶選擇字體並按下OK按鈕之後,有關信息便貯存在部件的Font屬性中。

應用程序可通過調用字體對話框的Execult方法來顯示對話框,當用戶選擇OK按鈕時,Execult返回True值,否則返回Flase值。

應用程序可以使用Options屬性來定義字體對話框的顯示和行為方式:例如可在對話框中定義一個幫助按鈕或指定出現在字體列表框中的字體。有關Options的主要取值如下表4.1: 

表4.1 字體對話框的Options取值及含義

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

取值           含義

───────────────────────────────────────

AdAnsiOnly 如果是真值,只能使用Window字符集,

fdEffects 如果是真值,對話框中顯示顏色列表和效果檢查框;用戶可使

用效果檢查框定義Strikout下劃線文本;使用顏色列表定義字體

顏色。

fdForceFontExise   如果是真值,用戶在字體組合框中輸入字體名後選擇OK按鈕,

將出現一個用戶字體無效的消息框。

fdNoOEMFont    如果是真值,字體組合框中將不顯示向量字體。

fdShowHelp 如果是真值,對話框顯示Help按按鈕。

fdWysiwyg 如果是真值, 只有打印和屏幕均可得到的字體才會出現在字體組合框中。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

例程中(Edit/Font)菜單具有設置文本字體的功能,其代碼如下:

procedure TEditForm.SetFont(Sender : TObject);

begin

FontDialog.Font := Memo1.Font;

if FontDialog1.Execult then

Memo1.Fout := FontDialog1.Font;

SetEdit Rect;

end; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved