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

Вниз

Определение строчки в RichEdit   Найти похожие ветки 

 
Alex_C ©   (2005-12-13 08:49) [0]

Дано RichEdit. Как в событии MouseMove по координатам мыши определить, над какой строчкой RichEdit"а (в смысле содержание этой строки) находиться мышь?


 
alles ©   (2005-12-13 12:28) [1]

/*Kuliba 2000*/
Procedure TForm1.GetPosition(Sender: TRichEdit);
var

iX,iY  : Integer;
TheRichEdit : TRichEdit;
begin

iX := 0; iY := 0;
TheRichEdit := TRichEdit(Sender);
iY := SendMessage(TheRichEdit.Handle, EM_LINEFROMCHAR, TheRichEdit.SelStart,
0);
iX := TheRichEdit.SelStart - SendMessage(TheRichEdit.Handle, EM_LINEINDEX,
iY, 0);
Panel1.Caption := IntToStr(iY + 1) + ":" + IntToStr(iX + 1) ;
end;

procedure TForm1.RichEditMouseDown(Sender: TObject;

Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin

GetPosition(RichEdit);
end;

procedure TForm1.RichEditKeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);
begin

GetPosition(RichEdit);
end;


 
begin...end ©   (2005-12-13 12:58) [2]

> Alex_C ©   (13.12.05 08:49)

procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
 P: TPoint;
 Line: Integer;
begin
 P := Point(X, Y);
 with (Sender as TRichEdit) do
   Line := Perform(EM_LINEFROMCHAR, Perform(EM_CHARFROMPOS, 0, Integer(@P)), 0);
 Caption := IntToStr(Line)
end


 
Alec_C   (2005-12-13 13:23) [3]

То alles: этот метод я конечно знаю, но в случае с MouseMove он не работает. Он работаем в случае MouseDown - EM_LINEFROMCHAR - сначали символ нужно выделить (что приосходит при нажатии на кнопку мыши)
То begin...end : Огромное спасибо! Так все работает отлично!
Кстати, думается мне что данный случай следует довавить во все факи к случаю, описанному alles.



Страницы: 1 вся ветка

Текущий архив: 2006.01.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.038 c
14-1134047962
Kerk
2005-12-08 16:19
2006.01.01
Нашел в папке "Спам"


1-1133789961
Экспериментатор
2005-12-05 16:39
2006.01.01
Как в MDI приложении сделать чтобы MDI-child окно максимизировало


14-1133940181
Думкин
2005-12-07 10:23
2006.01.01
Skyle - с днем тебя. Рождения.


14-1134134406
Piero
2005-12-09 16:20
2006.01.01
Оценка производительности алгоритмов


4-1130584787
AllDontFire
2005-10-29 15:19
2006.01.01
Создание и работа с DirectoryListBox через WinAPI