![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
![]()
Такой вопрос! При запуске консольного приложения с командной строки, оно открывается в новом окне командной строки и там выполняет вывод данных. Как сделать чтобы приложение выводило сообщения в то же окно командной строки из которого запущено? или отсылала ему команды, например echo.
![]() |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Чет не пойму:
Я создал косольку: Код:
Прога не открыла новое окно, а написала результат туда же. Че я не так делаю? Показывай свой код.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
![]()
Да код один в один такой же почти. Разобрался, проблема в bat-файле была. Писал в нём
echo starting program... start proj.exe pause Изменил на echo starting program... proj.exe pause и всё стало как надо ![]() только вот как сделать чтоб он перед выводом новой строки предыдущую очищал ![]() |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
![]()
Вот мой вариант программы...
program Timer; {$APPTYPE CONSOLE} uses windows,SysUtils; var i,t : integer; begin { TODO -oUser -cConsole Main : Insert code here } if paramcount <> 1 then //если нет параметров - ошибка и выход begin writeln('Parameters Error'); writeln; writeln('Template: timer.exe n'); writeln('n - seconds'); writeln; writeln('Press Enter To Continue...'); readln; Exit; end; t := StrToInt(paramStr(1)); //сколько секунд для отсчёта for i := t downto 1 do begin writeln(i); sleep(950); winexec('cmd.exe /c "echo off && cls"',sw_show); //видимо для cmd.exe необходимо 20мс чтобы //выполнить действие и завершиться sleep(50); end; end. Всё так, тока хочется чтобы после запуска ничего не стиралось, а просто надпись "таймер запущен" и секунды тикают... То есть фактически затирать последнюю строчку и новую поверх неё выводить... Последний раз редактировалось eks-s; 23.01.2008 в 00:53. |
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Что эт ты такое страшное креативиш, что такие пути выбрал??
I'm learning to live...
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
![]()
Да вобще то идея проста. в бат файле копируются папки с сети на обновление и архивируются, в одном месте я хочу вставить свой timer.exe 15, чтобы в окошке с показом всех операций копирования появилась надпись waiting 15 sec... и ниже шёл отсчёт секунд, по истечение которых продолжалось дальше выполнение операций.
Пока остановился на таком решении, но не то что я хочу... t := StrToInt(paramStr(1)); //сколько секунд для отсчёта writeln('waiting '+IntToStr(t)+' sec'); for i := t downto 1 do begin sleep(1000); if i > 1 then write('. ') else writeln('.'); end; writeln('timer off'); writeln; Последний раз редактировалось eks-s; 23.01.2008 в 00:43. |
![]() |
![]() |
![]() |
#7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А чего это не сделать в оконке?
I'm learning to live...
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
![]()
Весит больше, да и хочется консольно. А то при выводе всех команд в командной строке действие таймера выводить в окошке как то не то...
![]() |
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Вообще, на С это делается скажем так:
Код:
Код:
![]() Последний раз редактировалось B_N; 24.01.2008 в 07:45. |
![]() |
![]() |
![]() |
#10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Ну я знаю в паскале была функа GoToXY а вот осталась ли она в делфи не помню. Кстати можно попробовать использовать соответствующее прерывание БИОСа для перемещения курсора.
I'm learning to live...
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Консольное приложение | a_priori | Общие вопросы Delphi | 6 | 12.03.2008 08:33 |
Консольное приложение и DLL | SunKnight | Общие вопросы Delphi | 1 | 16.12.2007 02:35 |
Консольное приложение | MAcK | Общие вопросы Delphi | 2 | 03.12.2006 18:28 |