function tcoolmemo.getposition:tposition;
var
row,
cblines:longint;
str:widestring;
begin
//该消息取得光标所在的行,
row:= sendmessage(handle,em_linefromchar,selstart,0);
//该消息取得光标所在行开始的位置,位置从第一行的0开始计数,
//每过一个字符增加1,
cblines:=sendmessage(handle,em_lineindex,row,0);
//得到光标的所在行的所在列
//为了解决中文的问题,需要用宽字符型来取得光标所在行
//,行中光标所在列之前的字符串,这样可以解决中文列数的确定问题.
str:=copy(lines[row],1,col);
col:=length(str)+1;
result.row:=row+1;
result.col:=col;