TbtkScriptTextViewObject ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. pas:class:: TbtkScriptTextViewObject Класс, реализующий API для управления курсором, позиционирования прокрутки на конкретной линии и работы с выделением текста в текстовых редакторах. Реализуется на уровне GUI-контроллера фрейма выборки. Доступ осуществляется через :pas:class:`TbtkScriptControllerObject.Text` .. warning:: |not_supported| .. pas:attribute:: CursorLine: Integer Номер линии, на который находится курсор. Чтение/Запись. :rtype: Integer .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then ShowMessage('Cursor is on line: ' + IntToStr(Selection.Controller.Text.CursorLine)); .. pas:attribute:: CursorPos: Integer Позиция курсора относительно начала текста. Чтение/Запись. :rtype: Integer .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then ShowMessage('Cursor position: ' + IntToStr(Selection.Controller.Text.CursorPos) ); .. pas:attribute:: TopLine: Integer Номер строки, которая отображается в редакторе самой первой. Чтение/Запись. :rtype: Integer .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then begin s := InputBox('Change line', 'Switch from line ' + IntToStr(Selection.Controller.Text.TopLine) + ' to line:','') Selection.Controller.Text.TopLine := StrToInt(s); end .. pas:attribute:: SelLength: Integer Длина выделенного текста в символах в текущем редакторе. Чтение/Запись. :rtype: Integer .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then begin Selection.Controller.Text.SelStart := StrToInt(InputBox('Select text', 'From', '')); Selection.Controller.Text.SelLength := StrToInt(InputBox('Select text', 'Length', '')); end .. pas:attribute:: SelStart: Integer Позиция относительно начала текста, с которой начинается выделение текста. Чтение/Запись. :rtype: Integer .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then ShowMessage('Selection starts at ' + IntToStr(Selection.Controller.Text.SelStart)); .. pas:attribute:: SelText: String Выделенный текст в текущем редакторе. Чтение/Запись. Если выделение отсутствует, при присвоении свойства происходит вставка текста в место установки курсора. :rtype: String .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then ShowMessage(Selection.Controller.Text.SelText); .. pas:method:: MoveCursorTo(Line, Col: Integer) Переместить курсор в указанную позицию в редакторе ввода. :param Integer Line: номер линии, на которую будет перемещен курсор :param Integer Col: позиция относительно начала линии, на которую будет перемещен курсор. .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then begin line := InputBox('','line',''); col := InputBox('','column',''); Selection.Controller.Text.MoveCursorTo(line, col); end; .. pas:method:: GetPosByLine(LineNo: Integer; CursorAlign: TbtkLineCursorAlign): Integer Возвращает позицию относительно начала текста, которая соответствует заданной линии и расположению курсора относительно линии :param Integer LineNo: номер линии :param TbtkLineCursorAlign CursorAlign: выравнивание курсора: lcaStart курсор в начале строки lcaEnd курсор в конце строки. :rtype: Integer .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then begin i := InputBox('', 'Line num',''); ShowMessage('Pos at the beginning of line ' + i + ' ' + IntToStr(Selection.Controller.Text.GetPosByLine(StrToInt(i), lcaStart))); end; .. pas:method:: GetLineByPos(Pos: Integer): Integer Возвращает номер линии в редакторе ввода, которой соответствует позиция относительно начала текста. :param Integer Pos: позиция в тексте :rtype: Integer .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then begin pos := InputBox('','position',''); ShowMessage('Position ' + pos + ' is on line no: ' + IntToStr(Selection.Controller.Text.GetLineByPos(StrToInt(pos)))); end; .. pas:method:: ShowCursor(CursorAlign: TbtkShowCursorAlign) Выровнять положение линии с курсором относительно экрана. :param TbtkShowCursorAlign CursorAlign: выравнивание курсора: scaStart вверху экрана scaMiddle посредине экрана scaEnd внизу экрана. .. code-block:: delphi :caption: Пример использования if Assigned(Selection.Controller.Text) then begin Selection.Controller.Text.CursorLine := 50; Selection.Controller.Text.ShowCursor(scaMiddle); end; TbtkLineCursorAlign ********************* .. pas:class:: TbtkLineCursorAlign Перечисление. Позиция курсора относительно строки. .. warning:: |not_supported| .. pas:attribute:: lcaEnd Курсор в конце строки .. pas:attribute:: lcaStart Курсор в начале строки TbtkShowCursorAlign ********************** .. pas:class:: TbtkShowCursorAlign Перечисление. Положение линии с курсором относительно экрана .. warning:: |not_supported| .. pas:attribute:: scaEnd Линия с курсором внизу экрана .. pas:attribute:: scaMiddle Линия с курсором посредине экрана .. pas:attribute:: scaStart Линия с курсором вверху экрана