Форум: "Начинающим";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
ВнизОпределение строчки в 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c