Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
13 / 13 / 25
Регистрация: 08.07.2016
Сообщений: 93

Таймер

01.09.2016, 13:10. Показов 2601. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как зафиксировать положение двух строк?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
uses system,graphabc;
const a='26.05.2017 10:00:00';
procedure phone;
begin
  InitWindow(100,100,300,160,clblack);
  SetWindowTitle('Таймер');
  SetWindowIsFixedSize(true);
end;
procedure font1;
begin
  SetFontName('Segoe Print');
  setfontcolor(clwhite);
  SetFontSize(10);
  SetFontStyle(fsBoldItalic);
end;
procedure font2;
begin
  setfontcolor(clwhite);
  SetFontSize(12);
  SetFontStyle(fsBold);
end;
var n:datetime;
    t:timespan;
    time:array of string;
    y,m,d,h,min,s:integer;
begin
  phone;
  setlength(time,length(a));
  for var i:=0 to length(a)-1 do // '26.05.2017 10:00:00'
    time[i]:=a[i+1];
    y:=strtoint(time[6]+time[7]+time[8]+time[9]);
    m:=strtoint(time[3]+time[4]);
    d:=strtoint(time[0]+time[1]);
    h:=strtoint(time[11]+time[12]);
    min:=strtoint(time[14]+time[15]);
    s:=strtoint(time[17]+time[18]);
    n:=new datetime(y,m,d,h,min,s);
    repeat
      t:=n.subtract(datetime.now);
      font1;
      Writeln('До ЕГЭ-2017 осталось');
      font2;
      writelnFormat('{0} дн. {1} час. {2} мин. {3} сек.',t.Days,t.Hours,t.Minutes,t.Seconds);
      sleep(1000);
      clearwindow(clblack);
    until false;
end.
Добавлено через 6 минут
Высоту окна не уменьшать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.09.2016, 13:10
Ответы с готовыми решениями:

Таймер
Всем здравия. Пытаюсь реализовать отображение времени в заголовке окна через Таймер. uses System,System.Timers, CRT; var...

Установить таймер
Здравствуйте! Помогите мне вставить таймер в мою программу чтоб при вводе слова старт таймер работать и показывался в верхнем левом углу. ...

Не работает таймер
Код: uses Timers,Events; var tickers: real; function GiveErrorBad(lolikon:Boolean):boolean; begin ...

6
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.09.2016, 14:39
Лучший ответ Сообщение было отмечено Paradoxal_In как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
uses system,graphabc;
const a='26.05.2017 10:00:00';
procedure phone;
begin
  InitWindow(100,100,300,160,clblack);
  SetWindowTitle('Таймер');
  SetWindowIsFixedSize(true);
end;
procedure font1;
begin
  SetFontName('Segoe Print');
  setfontcolor(clwhite);
  SetFontSize(10);
  SetFontStyle(fsBoldItalic);
end;
procedure font2;
begin
  setfontcolor(clwhite);
  SetFontSize(12);
  SetFontStyle(fsBold);
end;
var n:datetime;
    t:timespan;
    time:array of string;
    st:string;
    y,m,d,h,min,s:integer;
begin
  phone;
  setlength(time,length(a));
  for var i:=0 to length(a)-1 do // '26.05.2017 10:00:00'
    time[i]:=a[i+1];
    y:=strtoint(time[6]+time[7]+time[8]+time[9]);
    m:=strtoint(time[3]+time[4]);
    d:=strtoint(time[0]+time[1]);
    h:=strtoint(time[11]+time[12]);
    min:=strtoint(time[14]+time[15]);
    s:=strtoint(time[17]+time[18]);
    n:=new datetime(y,m,d,h,min,s);
    repeat
      t:=n.subtract(datetime.now);
      font1;
      textout(80,50,'До ЕГЭ-2017 осталось');
      font2;
      st:=Format('{0} дн. {1} час. {2} мин. {3} сек.',t.Days,t.Hours,t.Minutes,t.Seconds);
      textout(40,80,st);   
      sleep(1000);
      clearwindow(clblack);
    until false;
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
01.09.2016, 16:29
Лучший ответ Сообщение было отмечено Paradoxal_In как решение

Решение

Тут половина строк лишняя:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
uses system,system.globalization,graphabc;
const
  a = '26.05.2017 10:00:00';
 
procedure phone;
begin
  InitWindow(100, 100, 300, 160, clblack);
  SetWindowTitle('Таймер');
  SetWindowIsFixedSize(true);
end;
 
procedure font1;
begin
  SetFontName('Segoe Print');
  setfontcolor(clwhite);
  SetFontSize(10);
  SetFontStyle(fsBoldItalic);
end;
 
procedure font2;
begin
  setfontcolor(clwhite);
  SetFontSize(12);
  SetFontStyle(fsBold);
end;
 
begin
  phone;
  var dt1 := DateTime.ParseExact(a, 'dd.MM.yyyy hh:mm:ss', CultureInfo.InvariantCulture);
  repeat
    font1;
    textout(10, 30, 'До ЕГЭ-2017 осталось');
    font2;
    textout(10, 80, TimeSpan(dt1 - DateTime.Now).ToString('d'' дн. ''hh'' час. ''mm'' мин. ''ss'' сек.'''));
    sleep(1000);
    clearwindow(clblack);
  until false;
end.
делает то же самое, зачем писать больше?
1
13 / 13 / 25
Регистрация: 08.07.2016
Сообщений: 93
01.09.2016, 17:18  [ТС]
А не знаете, как сделать без мерцания?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.09.2016, 17:22
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
lockdrawing;
    repeat
      clearwindow(clblack);
      t:=n.subtract(datetime.now);
      font1;
      textout(80,50,'До ЕГЭ-2017 осталось');
      font2;
      st:=Format('{0} дн. {1} час. {2} мин. {3} сек.',t.Days,t.Hours,t.Minutes,t.Seconds);
      textout(40,80,st);   
      sleep(1000);
      redraw;
    until false;
1
13 / 13 / 25
Регистрация: 08.07.2016
Сообщений: 93
01.09.2016, 17:32  [ТС]
Черный экран.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
01.09.2016, 17:38
Лучший ответ Сообщение было отмечено Paradoxal_In как решение

Решение

Это только 1 секунду. Ну напишите так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 for var i:=0 to length(a)-1 do // '26.05.2017 10:00:00'
    time[i]:=a[i+1];
    y:=strtoint(time[6]+time[7]+time[8]+time[9]);
    m:=strtoint(time[3]+time[4]);
    d:=strtoint(time[0]+time[1]);
    h:=strtoint(time[11]+time[12]);
    min:=strtoint(time[14]+time[15]);
    s:=strtoint(time[17]+time[18]);
    n:=new datetime(y,m,d,h,min,s);
    t:=n.subtract(datetime.now);
    font1;
    textout(80,50,'До ЕГЭ-2017 осталось');
    font2;
    st:=Format('{0} дн. {1} час. {2} мин. {3} сек.',t.Days,t.Hours,t.Minutes,t.Seconds);
    textout(40,80,st);   
    lockdrawing;
    repeat
      clearwindow(clblack);
      t:=n.subtract(datetime.now);
      font1;
      textout(80,50,'До ЕГЭ-2017 осталось');
      font2;
      st:=Format('{0} дн. {1} час. {2} мин. {3} сек.',t.Days,t.Hours,t.Minutes,t.Seconds);
      textout(40,80,st);   
      sleep(1000);
      redraw;
    until false;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2016, 17:38
Помогаю со студенческими работами здесь

Как встроить таймер в часы
Здравствуйте. Задание такое, написать на pascalABC, часы с таймером, сами часы есть, но вот, как встроить туда таймер? Как всё это...

Графический таймер работает через раз
program CyberForum; uses ABCobjects, GraphABC, Timers; var t1 : Timer; var time_HUD : TextABC; var time_second : integer; ...

Добавить минутный таймер по истечение которого игра кончится
Здравствуйте, есть игра в которую нужно добавить минутный таймер по истечение которого игра кончится и выведется количество набранных...

Не происходит рисование при вставке процедуры для рисования в таймер. PaintBox FormsABC
Как я понял отрисовка происходит во время работы главного тела программы, а после запуска процедуры через таймер отрисовка не происходит. ...

Как сделать так, чтобы при вводе данных с клавиатуры, работал таймер, например на 20 секунд?
Хотел создать игру, но не знаю как сделать так, чтобы при вводе данных с клавиатуры, работал таймер, например на 20 секунд, а при истечении...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru