Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
Внизrichedit и popupmenu. Определение позиции в тексте. Найти похожие ветки
← →
Alexsum (2003-07-25 16:28) [0]Не подскажите, как в richedit определить на каком месте текста был правый клик (вылезло попап меню)?
OnMouseDown не подходит, оно дает позицию мыши, а не место в тексте....
← →
Song (2003-07-25 16:42) [1]EM_CHARFROMPOS
ScreenToClient
← →
VAleksey (2003-07-25 17:45) [2]SelStart даст позицию курсора в символах.
← →
Sha (2003-07-26 10:10) [3]var
L, P: Integer;
begin
with RichEdit1 do
begin
P:= SelStart;
L:= SendMessage(Handle, EM_LINEFROMCHAR, P, 0);
P:= P - SendMessage(Handle, EM_LINEINDEX, L, 0);
Caption:= IntToStr(L + 1) + " " + IntToStr(P + 1);
end;
← →
Alexsum (2003-07-28 10:07) [4]а можно поподробнее по поводу EM_CHARFROMPOS, потому как вариант sha возвращает практически caretpos,а это координаты где стоит курсор, а мне нужно определить где находится указатель мыши
← →
Song (2003-07-28 10:23) [5]GetCursorPos() - координаты мыши относительно экрана. Потом к ней применяешь ScreenToClient() - получаешь координаты мыши относительно клиентской области RichEdit
← →
Alexsum (2003-07-28 10:30) [6]Это все понятно, прикол в том что оно не отрабатывает (EM_CHARFROMPOS), а выдает ошибку.
← →
chs2r (2003-07-28 12:12) [7]можешь так попробовать
Mouse:TMouse;
...
procedure TForm.PopupMenu1Popup(Sender: TObject);
begin
xm:=Mouse.CursorPos.X;
ym:=Mouse.CursorPos.Y;
end;
в координатах экрана
← →
Alexsum (2003-07-28 17:38) [8]Вот то что получилось в результате изысканий.z - это номер символа в richedit
z: Integer;
x: TPoint;
begin
GetCursorPos(x);
x1:=richedit.ScreenToClient(x);
z:=richedit.Perform(EM_CHARFROMPOS, 0, longint(@x));
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c