Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-33326
alxx
2003-07-25 11:08
2003.08.11
Абстрактные методы в C++


3-33064
DBDev
2003-07-18 13:32
2003.08.11
Коллеги, как лучше обработать OnFieldChange?


14-33271
vidiv
2003-07-16 14:16
2003.08.11
Вопрос про фреймы в HTML


14-33291
Khloo
2003-07-24 11:19
2003.08.11
Как подключится к таблице создан. в Access


3-33075
LeReve
2003-07-17 17:44
2003.08.11
про TCalientDataSet.ApplyUpdate





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский