Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.11;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-33046
victor_ch
2003-07-15 09:29
2003.08.11
Вызов хранимой процедуры в запросе


14-33327
Маратей
2003-07-25 10:55
2003.08.11
IExporer, Вызов окна


3-33067
Relaxxx
2003-07-18 16:04
2003.08.11
Вычисляемое поле


1-33094
ELKa
2003-07-29 15:13
2003.08.11
Динамические массивы в Делфи 3


3-33049
RomanM
2003-07-18 11:33
2003.08.11
Выборка(фильтрация) данных