sendmessage(handle, em_getrect, 0, longint(@rect));
//该消息设定输入区的大小
sendmessage(handle, em_setrect, 0, longint(@rect));
光标的位置:
property position:tposition read getposition;
tpostion是一个结构,其中有行和列两个值:
tposition=record //指定光标的行和列
row:longint;
col:longint;
end;
getposition;中还要处理中文的问题,代码有详细说明,如果文本中有中文,一样也可以得到正确的行和列。
最后增加了两个事件
property onenter;
property onexit;
都是从父类中显化出来的,其实就是cm_mouseenter和cm_mouseleave;消息引起的。,当你想作一个三态按钮,这两个事件很有作用。
好了,重点就是上面那几个了,以下是源代码,其中也有详细的说明:
unit coolmemo;
interface
uses
windows, messages, classes, forms,controls, graphics, stdctrls;