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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2008, 09:59   #11
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Не, биос тут никаким боком, это не то окно.

SetConsoleCursorPosition
SetConsoleTextAttribute
SetConsoleCursorInfo и пр. Set/GetConsoleXXXX
пыщь
JTG вне форума Ответить с цитированием
Старый 24.01.2008, 10:41   #12
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Елки, зачем БИОС? зачем gotoxy? я же написал выше - строку не надо переводить и всё, в конце строки ставим "возврат каретки" - "\r" в С или #OD в паскале...
B_N вне форума Ответить с цитированием
Старый 24.01.2008, 11:16   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я може ступоросил, мне показалось что автор хочет выводить показания таймера в одном и том же месте )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.01.2008, 11:20   #14
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я може ступоросил, мне показалось что автор хочет выводить показания таймера в одном и том же месте )
Ну да. Я тоже так понял. Грубо говоря, от хочет перетирать предыдущую строку, а не переводить.
B_N вне форума Ответить с цитированием
Старый 25.01.2008, 02:06   #15
eks-s
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 64
По умолчанию

всё, нашёл в интернете. http://delphiworld.narod.ru/base/con..._text_out.html

вот состряпал именно то что хотел, копирую exe-шник в Windows\system32 и обращаюсь с любого места
Код:
program Timer;

{$APPTYPE CONSOLE}

uses
  windows,SysUtils;
var
  i,t : integer;
  hCon: integer;
  aCoord: TCoord;

function WhereXY: TCoord;
var
  ScrBufInfo: TConsoleScreenBufferInfo;
begin
  GetConsoleScreenBufferInfo(hCon,ScrBufInfo);
  Result := ScrBufInfo.dwCursorPosition;
end;

begin
  writeln;
  writeln('Welcome to Timer v.1 from eks-s ^ii^');

  if paramcount <> 1 then    //если нет параметров - ошибка и инструкции
    begin
      writeln('Parameters Error'); writeln;
      writeln('Template: timer.exe n');
      writeln('n - seconds'); writeln;
      writeln('Press Enter To Exit...');
      readln; Exit;
    end;

  t := StrToInt(paramStr(1));     //сколько секунд для отсчёта
  hCon := GetStdHandle(STD_OUTPUT_HANDLE);
  aCoord := WhereXY;
  for i := t downto 1 do
    begin
      writeln('waiting '+IntToStr(i)+' sec');
      sleep(1000);
      aCoord.x := 0;
      SetConsoleCursorPosition(hCon,aCoord);
    end;
  write('timer off');writeln(' ':20);
  readln;
end.
Цитата:
Елки, зачем БИОС? зачем gotoxy? я же написал выше - строку не надо переводить и всё, в конце строки ставим "возврат каретки" - "\r" в С или #OD в паскале...
Этот вариант у меня на Delphi 2006 не работает... или может я ччё не так делаю
Код:
while i < t do begin write(i:8,"#0D"); Sleep(1000); i := i+1; end;  
writeln();
по указанной ссылке кстати говорится как поменять цвет выводимого цвета. У меня не получилось, как сделать?
eks-s вне форума Ответить с цитированием
Старый 25.01.2008, 02:14   #16
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Алексей eks-s ^ii^ Посмотреть сообщение
Этот вариант у меня на Delphi 2006 не работает... или может я ччё не так делаю

по указанной ссылке кстати говорится как поменять цвет выводимого цвета. У меня не получилось, как сделать?
Вот этот вариант на С работает, я перед тем как вчера еще постить проверил
Код:
#include <stdio.h>
#include <windows.h>

int main()
{
	int i = 0;
	while ( i++ < 10) { 
   		printf("waiting %02d\r", i); 
		Sleep(1000); 
	}  
	printf("\n");  
}
Обращаю внимание на "\r" - "неполный" перевод строки.

Цвет и прочее реализуются десятым прерыванием БИОСа, под Win32 недоступным, а только в эмуляции, для досовых программ.
B_N вне форума Ответить с цитированием
Старый 25.01.2008, 02:20   #17
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Но, с другой стороны, если Вам цвет всё-таки нужен, можно сделать его вызовом SetConsoleTextAttribute
B_N вне форума Ответить с цитированием
Старый 25.01.2008, 03:12   #18
eks-s
Пользователь
 
Регистрация: 15.01.2008
Сообщений: 64
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Но, с другой стороны, если Вам цвет всё-таки нужен, можно сделать его вызовом SetConsoleTextAttribute
Спасибо! Разобрался. Добавил
SetConsoleTextAttribute(hCon,FOREGR OUND_GREEN + FOREGROUND_INTENSITY);

и всё стало красиво
eks-s вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консольное приложение 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