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

MEMO光標定位

編輯:Delphi

  作為一個與VisualBasic相類似,但功能更強大的可視化程序開發工具,Delphi同樣提供了大量的簡單便捷的控制組件,通過這些組件,程序設計者可以設計出規范美觀的界面。並且規范化使用者的輸入內容。其中,Delphi提供的編輯組件中的Memo組件的功能是非常豐富的。它可 以完成對文字的編輯、修改、文件的調入和存儲文件等功能,但是與一般的字處理軟件相比,它並未提供編輯時對光標位置、所在行及所在列的信息,這不能說不是一個缺憾。其實,通過很簡單的幾行程序就可以實現這一要求:   

  先在Form上放置三個Label組件,並在程序代碼的前面聲明下面這三個變量為整型數,即:
  VarLpos,Cpos,Linelength:integer;   

其中Lpos是行的值(按照Memo的規定,第一行為0),Cpos是字符的位置,LineLength是當前行的字符總個數。   

  然後,再將下面的七行程序代碼分別加入Memo1的OnMouseDown和OnKeyDown的事件代碼處即可。   

   Lops:=SendMessage(memol.Handle,EM—LINEFROMCHAR,Memol.SelStart,0);   
   Cpos:=SendMessage(meno1.Handle,EM—LINEINDEX,Lpos,0);  
   LineLength:=SendMessage(memol.handle,EM—LINELENGTH,Cpos,0);
   Cpos:=Memol.SelStart-CPos;   
   Labell.caption:=inttostr(lpos);   
   Label2.caption:=inttostr(cpos);   
   Label3.caption:=inttostr(linelength);   

  這樣,執行程序後,隨著在Memo組件中的編輯操作,Label1、Label2和Label3就將顯示出相對應的當前行值、字符位置與當前行的字符總個數了。

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