Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Разработка блокнота для DreamShell
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7237
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1214 раз(а) в 762 сообщ.
Сообщение: #2
Разработка блокнота для DreamShell
Мдяяя, это самая сложная сторона из разработки блокнота который будет работать прямо в консоли DS, чесно говоря этот вариант не подойдет для больших объемов, так как буфер DS для ввода и вывода данных составляет 2кб:)
Хотя можно сделать и чтобы данные записывались в файл, когда превышается лимит буфера... и прокрутку таким образом тоже в принципе можно было бы замутить, но это уже потом...

Что для этого нужно, во первых, если ты будеш вводить что то в консоль, то в любом случае это будет использоваться как команда, но... сработает она когда реально произойдет выход из функции, то есть из запущенного скрипта, который в свою очередь управлялся функцией в DS...
Для этого можно удолить все написаное из буфера(записав все это в файл предварительно) функцией:
Код:
DS.conio_clear()
Таким образом очистятся буферы экрана и командной строки.
Но это уже после выхода из блокнота делать будет, для того чтобы все написаные строки не засчитались как команды:)
Думаем что делать с ожиданием ввода...
Вот например есть функция которая ждет нажатие любой кнопки клавиатуры:
Код:
DS.conio_getch()
Она возвращает число, которое в свою очередь означает нажатую клавишу...
Если нажата клавиша, то возвращается ascii кодировка нажатого символа...
С помощью функции:
Код:
DS.input_insertbuff(ascii сюда)
нажатая клавиша(буква, пробел, энтер) добавится в буфер...
Но зачем в принципе так заморачиваться, ведь все равно каждое нажатие добовляется в буфер и как ты спрашивал что бы типа поставить курсор на следущую строку и ждать ввода делается довольно просто... просто в цикл поставь фнкцию DS.conio_getch()
Вот только проблема есть с тем, что из буфера ты этого ничего не возьмеш потом:)Это я просто немного принципа объяснил:)
Тебе нужно это сохранять куда то постоянно, ведь такая фишка как ты делал в предыдущий раз с аргументами не проканает, думаю сам понимаеш почему:)
Тебе нужно сделать свой буфер и функцию которая запихнет нажатый символ в него, что то типа DS.input_insertbuff(ch)
но свое...
Ну это я тебе пока писать не буду, попробуй сам, если будут проблемы то пиши конечно помогу...

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 08.10.2005 в 21:59, отредактировал пользователь SWAT.)
08.10.2005 21:55
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Сообщения в этой теме
Разработка блокнота для DreamShell - SWAT - 08.10.2005 21:55

Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Need help building Dreamshell Rio 10 3506 01.07.2024 09:11
Посл. сообщение: SWAT
  DreamShell dev environment setup on macOS VeraBecker 17 10930 19.09.2023 06:25
Посл. сообщение: SWAT
  Приложение для DreamShell SuperClaw 170 439876 01.05.2016 08:12
Посл. сообщение: SWAT
  DreamShell 4.0 - XML Doc SWAT 6 36718 06.04.2015 13:41
Посл. сообщение: SWAT
  DreamShell 4.0 - Module dev SWAT 8 33289 23.12.2013 13:20
Посл. сообщение: SWAT
  Dreamshell BETA3/BETA4 Direct Swap atreyu187 3 20805 09.09.2011 14:27
Посл. сообщение: SWAT
  DreamShell 4.0 - App dev SWAT 3 23352 22.06.2011 23:09
Посл. сообщение: Jirohn
  DreamShell 4.0 - Bug Report SWAT 54 176619 28.03.2011 07:24
Посл. сообщение: SWAT
  DreamShell 4.0 - Beta Testing SWAT 76 243939 14.07.2010 20:58
Посл. сообщение: SWAT
  DreamShell 4.0 SWAT 43 146092 05.02.2010 07:10
Посл. сообщение: SWAT

Переход:


Пользователи просматривают эту тему: 1 Гость(ей)