Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2015, 23:20   #1
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию Readln timeout

Здравствуйте, как заставить консоль одновременно и считывать ввод с клавиатуры и выводить текст? (Например окошко hlds ну или же как в линуксе, постоянно выводится информация и одновременно работает ввод команд)
Пишу что то типа сервера, и выводится в консоль кто отключился/подключился, надо как то вместе с этим работающий readln.
Здравствуйте

Последний раз редактировалось NEoMASTERR; 27.10.2015 в 23:22.
NEoMASTERR вне форума Ответить с цитированием
Старый 28.10.2015, 14:47   #2
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 160
По умолчанию

Зачем таймаут? можно например в разных потоках читать ввод и выполнять необходимую работу, при необходимости приостанавливая вывод/работу "рабочего" потока до конца ввода команды. Вроде этого:
Вложения
Тип файла: rar test.rar (228.0 Кб, 12 просмотров)

Последний раз редактировалось DIONISKA; 28.10.2015 в 15:25.
DIONISKA вне форума Ответить с цитированием
Старый 28.10.2015, 15:52   #3
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

Цитата:
Сообщение от DIONISKA Посмотреть сообщение
Зачем таймаут? можно например в разных потоках читать ввод и выполнять необходимую работу, при необходимости приостанавливая вывод/работу "рабочего" потока до конца ввода команды. Вроде этого:
Это немного не то, мне не надо останавливать поток вывода, он постоянно что то выводит на экран, параллельно с этим должен работать ввод
Примерно так:
Здравствуйте

Последний раз редактировалось NEoMASTERR; 28.10.2015 в 15:57.
NEoMASTERR вне форума Ответить с цитированием
Старый 28.10.2015, 16:03   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а переделать это немного не то, на ваше то?
вам лишь пример показали, переделайте под себя
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.10.2015, 16:09   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не могу понять вашу задумку. ну вот, допустим, идёт какой-то вывод, как на вашем скриншоте, Вы начали набирать текст blablabla и в этот момент вывелось ещё несколько строчек в консоль.
что должно произойти с вашим набранным blablabla ?
что должно произойти с позицией курсора (он сейчас в конце набранной строки)
что будет, если в консоли будет выведено 100 строк? Где окажется ваше blablabla ?
на мой взгляд, интерфейс должен быть СОВСЕМ другой:
экран разделён - верхние строки и одна нижняя.
в верхнюю часть добавляются новые строки, они скроллируются,
нижняя часть стоит на месте, там ваш курсор. набрали строку, нажали Enter - ваша строка попала в Output.
так сделаны многие мессенджеры (посмотрите, например, окошко сообщений в Skype)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2015, 16:18   #6
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не могу понять вашу задумку. ну вот, допустим, идёт какой-то вывод, как на вашем скриншоте, Вы начали набирать текст blablabla и в этот момент вывелось ещё несколько строчек в консоль.
что должно произойти с вашим набранным blablabla ?
что должно произойти с позицией курсора (он сейчас в конце набранной строки)
что будет, если в консоли будет выведено 100 строк? Где окажется ваше blablabla ?
на мой взгляд, интерфейс должен быть СОВСЕМ другой:
экран разделён - верхние строки и одна нижняя.
в верхнюю часть добавляются новые строки, они скроллируются,
нижняя часть стоит на месте, там ваш курсор. набрали строку, нажали Enter - ваша строка попала в Output.
так сделаны многие мессенджеры (посмотрите, например, окошко сообщений в Skype)
блабла будет ниже всех выводимых строк
я и хочу так, и если б я знал как я бы сделал) поэтому я здесь
(это консольное окно выше - не моя работа)
Здравствуйте

Последний раз редактировалось NEoMASTERR; 28.10.2015 в 16:42.
NEoMASTERR вне форума Ответить с цитированием
Старый 28.10.2015, 17:38   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

это вам уже полноценный CUI надо брать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.10.2015, 20:50   #8
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

Ну хоть ссылкой в меня киньте чтоль
Здравствуйте
NEoMASTERR вне форума Ответить с цитированием
Старый 29.10.2015, 01:32   #9
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,867
По умолчанию

Цитата:
Сообщение от NEoMASTERR Посмотреть сообщение
Ну хоть ссылкой в меня киньте чтоль
Ссылкой на что, пардон? Консоль подразумевает последовательный ввод/вывод информации.
В сущности она даже ущербней пишмашинки, про которую ты может слышал. На пишмашинке можно было прокрутить лист бумаги книзу , напечатать что-нибудь там, а затем прокрутить лист назад (вверх) и печатать на прежнем месте. Консоль этого не умеет.
northener вне форума Ответить с цитированием
Старый 29.10.2015, 02:12   #10
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Ссылкой на что, пардон? Консоль подразумевает последовательный ввод/вывод информации.
В сущности она даже ущербней пишмашинки, про которую ты может слышал. На пишмашинке можно было прокрутить лист бумаги книзу , напечатать что-нибудь там, а затем прокрутить лист назад (вверх) и печатать на прежнем месте. Консоль этого не умеет.
То есть я щас смотрю на консольку hlds и она мне снится?

1. Скрин, ввёл команду БЛАБЛА


2. Скрин, в консольке произошли изменения (вывелась новая информация), БЛАБЛА по прежнему на месте, ничё не трогал в консольке


3. Нажал энтер, сообщений о несуществующих командах нет поэтому ввел дополнительно команду status (всё это дело в середине консольки, результат команды сразу после неё)
Здравствуйте

Последний раз редактировалось NEoMASTERR; 29.10.2015 в 02:23.
NEoMASTERR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пропускает Readln(<string>) olololeg Паскаль, Turbo Pascal, PascalABC.NET 11 12.11.2012 18:49
Readln и задержка Freezy Паскаль, Turbo Pascal, PascalABC.NET 0 17.04.2011 15:26
delphi write readln Petrovich83 Помощь студентам 2 02.04.2011 12:15
Readln BaJIuK Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 25.06.2010 04:21