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;
Bewerten Sie diesen Tipp:
|
|
|