Главная страница
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
1-33208
CanBlow
2003-07-28 18:27
2003.08.11
TThread


6-33251
Сергей_
2003-06-06 13:57
2003.08.11
отправка и прием файла по модему


1-33131
М. Дмитрий
2003-07-27 20:09
2003.08.11
Вопрос по ScaleBy


8-33227
Lister
2003-04-16 16:26
2003.08.11
Анимированная форма


1-33213
NetKnight
2003-07-28 16:32
2003.08.11
Как побитно записать инфу в тип Cardinal?