리치에디트의 마우스의 움직임에 따라 현재 행의 값과 행번호, 열번호를 구할 수 있다.
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;
'델파이' 카테고리의 다른 글
gist 연습 (0) | 2017.10.27 |
---|---|
TButton Style 종류와 TPopupMenu 연결 (0) | 2017.08.24 |
TRichEdit url링크 (0) | 2017.08.14 |
퀵리포트(TQuickReport) TDBGrid 선택된 것만 인쇄 OnNeedData (0) | 2017.07.12 |
스트링그리드(TStringGrid) 현재 행에 색깔 넣기, 교차행에 색깔 넣기, 포커스이동문제해결 (0) | 2017.06.21 |