Привет, MDV!
Добро пожаловать к нам на форум! Заходите почаще! 
Я вначале хотел написать следующее:
Код | 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; |
Вот простенькая демка |