空姐网

 找回密码
 注册空姐网账号

QQ登录

只需一步,快速开始

用新浪微博连接

一步搞定

查看: 2422|回复: 2

DELPHI 技巧 - MEMO光标定位

[复制链接]

发表于 2005-1-1 03:18:26 | 显示全部楼层 |阅读模式
 作为一个与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就将显示出相对应的当前行值、字符位置与当前行的字符总个数了。
空乘婚恋http://www.51Love.cc 机组人员在英文里称为Cabin Crew
回复

使用道具 举报

发表于 2005-3-10 10:31:06 | 显示全部楼层
鼓励~~~~
空乘婚恋http://www.51Love.cc 机组人员在英文里称为Cabin Crew
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-10 15:28:05 | 显示全部楼层
我顶~~~~~~~~~~
空乘婚恋http://www.51Love.cc 机组人员在英文里称为Cabin Crew
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册空姐网账号

本版积分规则

客户关怀|黑名单|写信给我们|空姐网 ( 沪ICP备14049210号-6 )

GMT+8, 2024-11-22 05:13 , Processed in 0.100046 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表