TRichEdit 마우스위의 라인값, 행번호, 열번호 구하기
리치에디트의 마우스의 움직임에 따라 현재 행의 값과 행번호, 열번호를 구할 수 있다.
procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
pt: TPoint;
charindex, lineindex, charoffset: Integer;
c: string;
mask: integer;
row, col: Integer;
begin
pt := Point(X, Y);
charindex := p_reNote.Perform(Messages.EM_CHARFROMPOS, 0, integer(@pt));
if charindex >= 0 then
begin
lineindex := p_reNote.Perform(EM_EXLINEFROMCHAR, 0, charindex);
charoffset := charindex - p_reNote.Perform(EM_LINEINDEX, lineindex, 0);
Edit1.Text := p_reNote.Lines[lineindex];
end;
GetCursorPos(pt);
pt := p_reNote.ScreenToClient(pt);
charindex := p_reNote.Perform(Messages.EM_CHARFROMPOS, 0, integer(@pt));
Row := p_reNote.PerForm(EM_EXLINEFROMCHAR, 0, charindex);
Col := charindex - p_reNote.Perform(EM_LINEINDEX, Row, 0);
Edit2.Text := inttostr(Row) + ', ' + inttostr(Col);
end;