Показать сообщение отдельно
  #1  
Старый 24.05.2011, 15:09
KiL0z KiL0z вне форума
Прохожий
 
Регистрация: 27.05.2010
Сообщения: 23
Репутация: 10
Вопрос Делаем консоль из Memo

Делаю проект, нужна консоль как в 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
Вложения
Тип файла: zip ConsoleIO.zip (8.0 Кбайт, 48 просмотров)
Тип файла: zip ColnsoleIOexample.zip (232.4 Кбайт, 32 просмотров)
Ответить с цитированием