Главная страница
    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.006 c
14-33362
Мазут Береговой
2003-07-25 10:16
2003.08.11
Можно ли в MS Access поставить на таймер бэкап базы?


4-33388
Серега
2003-06-08 16:57
2003.08.11
Несколько файлов в один


1-33199
DanilB
2003-07-29 09:43
2003.08.11
MDI - приложения


14-33293
Пубертанец
2003-07-24 13:56
2003.08.11
Понимаю, что не по теме, но все же...


3-33082
xBocT
2003-07-17 15:18
2003.08.11
Ошибочка при работе с AdoDataSet





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский