<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      Delphi中RichEdit的奧妙

      [摘要]一、如何得知當前行號  用RichEdit(或者memo)控件制作文本編輯器時,通過訪問linescount屬性可以得到總行數,但是若想知道光標當前所在行的行號就麻煩了,因為delphi沒有提供這...
           一、如何得知當前行號
        用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)),′消息′,mb_ iconinformation);
        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;

        以上程序在Delphi3中調試通過。


      日韩精品一区二区三区高清