Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > SynUniHighlighter и SynEdit > Позиция указателя мыши


Автор: MDV 6.11.2005, 12:47
Как определить над каким символом (строка и столбец) находится указатель мыши?

Автор: Vitalik 6.11.2005, 15:48
Привет, MDV!

Добро пожаловать к нам на форум! Заходите почаще! smile

Я вначале хотел написать следующее:
Код
SynEdit.CaretXY // TBufferCoord - запись, хранящая позицию курсора
SynEdit.CaretY или SynEdit.CaretXY.Line // это текущая строка
SynEdit.CaretX или SynEdit.CaretXY.Char // это текущий столбец

Потом только увидел, что нужно определить символ под указателем мыши...

Для этих целей можно использовать событие SynEdit1.OnMouseCursor:
Код
procedure TForm1.SynEdit1MouseCursor(Sender: TObject;
  const aLineCharPos: TBufferCoord; var aCursor: TCursor);
var
  bLine, bChar: integer;
begin
  bLine := aLineCharPos.Line; // строка
  bChar := aLineCharPos.Char; // слолбец
  lbCoords.Caption := '['+IntToStr(bChar)+', '+IntToStr(bLine)+']'; // выводим координаты
  // чтобы не было AV нужны проверки:
  if (0 < bLine) and (bLine <= SynEdit1.Lines.Count) and
     (0 < bChar) and (bChar <= Length(SynEdit1.Lines[bLine-1])) then
    lbSymbol.Caption := ''''+SynEdit1.Lines[bLine-1][bChar]+'''' // символ под указателем
  else
    lbSymbol.Caption := ''''''; // нет символа под указателем мыши
end;

Вот простенькая демка smile

Автор: Vitalik 6.11.2005, 15:49
А вот вместе с exe (на всякий пожарный) smile

Автор: MDV 6.11.2005, 18:44
Да.....Сильно сделали. Это не Альтернатива RE для набора кода, это тянет на его замену.

Автор: Vitalik 7.11.2005, 02:17
Цитата(MDV @ 6.11.2005, 18:44)
Да.....Сильно сделали. Это не Альтернатива RE для набора кода, это тянет на его замену.

Ну... Если ты имеешь ввиду RichEdit, то "на замену" это точно не катит smile
Ведь SynEdit работает только с PlainText файлами, в то время как RichEdit - с форматированными, как например RTF...

Но скорее всего я тебя совсем не правильно понял smile

Автор: MDV 13.11.2005, 10:37
Имелось для набора программного кода

Автор: Vitalik 14.11.2005, 15:24

 ! 
 
Обсуждение прокрутки SynEdit'а к определённой строке выделено в тему "Как прокрутить SynEdit к линии y"

Автор: Vitalik 14.11.2005, 15:58
Цитата(MDV @ 13.11.2005, 10:37)
Имелось для набора программного кода

А... Ну если в этом смысле, то я бы сказал наоборот, что RichEdit - это даже не альтернатива SynEdit smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)