Делаю проект, нужна консоль как в
Notepad++ (
левый рис.). В
Total Commander то же есть консоль (
правый рис.), но несколько не такая как нужна
На просторах Internet нашёл коспонент
TConsoleIO (к сожалению ссылки на автора не было), который позволяет перенаправить вывод данных в
Memo.
Однако как в
TMemo запретить правку всей области, кроме точки ввода (
т.е. позиции где в консоли обычно мигает курсор и редактируется текст, например
Цитата:
D:\Dir1\Dir2\Dir3\>dir
Том в устройстве D имеет метку DATA
Серийный номер тома: 54FD-E549
Содержимое папкиD:\Dir1\Dir2\Dir3
24.05.2011 22:52 <DIR> .
24.05.2011 22:52 <DIR> ..
23.05.2011 17:12 <DIR> Dir4
05.02.2011 21:35 4*082*176 ProgSamles.exe
D:\Dir1\Dir2\Dir3\>ProgSamles.exe|
|
где жирным не редактируемая часть,
а курсивом редактируемая область {с условным курсором в конце}) ???
Пусть запрещена правка в
TMemo и отслеживается нажатия клавиш и буфер обмена - если текст редактируется с указанной позиции, то отображать изменения в
Memo, а если за ей пределами (
выше, т.к. ниже редактируемой строки не должно ничего быть), то возможно только копирование в буфер обмена. При нажатии клавиш, если курсор не в
области правки, ставится в
конец области правки и введенный символ вводится уже туда, а если он уже там то просто вводится символ в позицию курсора.
ВОПРОСЫ:
Как определить позицию курсора в тексте?
Как переместить курсор в произвольную позицию (существующею в тексте)?
PS Пишу в Delphi 2010