程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> RichEdit使用技巧

RichEdit使用技巧

編輯:Delphi

  RichEdit組件和Memo組件非常相似,但RichEdit組件的文字可以有多種字體、顏色。它們一般用於制作文本編輯器。在文本編輯器中我們一般需要知道光標的當前行號,另外我們還要實現Undo(撤銷)功能。

  一、如何得知當前行號   

  用RichEdit(或者memo)控件制作文本編輯器時,通過訪問lines.count屬性可以得到總行數,但是若想知道光標當前所在行的行號就麻煩了,因為Delphi沒有提供這個屬性。要實現這個編輯器必備功能,就須調用em_ LineFromChar。請試試下面的程序。   

  先在窗口中布置一個RichEdit或者memo(命名為editor),以及一個button。在button的onclick事件中寫入下列代碼。   

  var   CurrentLine:Integer;   
  begin   
  CurrentLine:=EditorPerform(em_ LineFromChar,SFFFF,0);          
  ApplicationMessageBox(PChar(′當前行號是′+IntToStr(CurrentLine)),'消息',mbiconinformation);
  end;   

  需要注意的是,第一行的行號為零。   

  二、如何撤消操作(undo)   

  對於memo來說,實現undo是不需編程的,只要讓popupmenu屬性為空,運行時就能用鼠標右鍵激活一個常用操作菜單,其中包括撤消、剪切、復制、粘貼、刪除和全選六項。

  但可惜的是,這一招對於功能強大的RichEdit控件居然行不通,害得我們還要自己設計一個popupmemu。當你用CutToClipBoard等語句輕松而順利地完成了“剪切”等功能,接著便會無奈地發現,竟找不到undo或cancel之類的語句來執行“撤消”。

  這時你需要這樣處理:   RichEdit1Perform(EM_UNDO,0,0);   

  另外還應檢查是否允許撤消,從而開啟或關閉彈出菜單中的“撤消”項:   

  Undo1Enabled:=RichEditPerform(EM_CANUNDO,0,0)<>0;   

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