Mega Code Archive

 
Categories / Delphi / VCL
 

Get column and row from trichedit-tmemo

function RichRow(m: TCustomMemo): Longint; begin Result := SendMessage(m.Handle, EM_LINEFROMCHAR, m.SelStart, 0); end; function RichCol(m: TCustomMemo): Longint; begin Result := m.SelStart - SendMessage(m.Handle, EM_LINEINDEX, SendMessage(m.Handle, EM_LINEFROMCHAR, m.SelStart, 0), 0); end; procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin caption := Format('%d : %d', [RichCol(Form1.Memo1), RichRow(Form1.Memo1)]); end; procedure TForm1.RichEdit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin Caption := Format('%d : %d', [RichCol(Form1.richedit1), RichRow(Form1.richedit1)]); end; // Or use CaretPos to determine the cursor's coordinates: procedure TForm1.Button1Click(Sender: TObject); begin with RichEdit1.CaretPos do Label1.Caption := Format('(%d, %d)',[X+1,Y+1]) end;