цифровой секундомер в графике, семисегментый |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
цифровой секундомер в графике, семисегментый |
striker |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
http://forum.sources.ru/index.php?showtopi...0entry2263928
Сворачивается экран Паскаля (турбо) присваивание detect'а не помогает |
volvo |
Сообщение
#2
|
Гость |
Так... А теперь - подробнее, что значит "экран сворачивается"? Программа завершается? Ты ее как запускал? Попробуй запусти прямо из IDE, по крайней мере получишь информацию о причинах такого поведения. Повторяю, только что проверил под TP, у меня - ничего не сворачивается, отображается заданное время...
Добавь анализ graphresult, может у тебя с инициализацией графики что-то не то? В любом случае, указание строки, на которой прерывается выполнение программы, и сообщения, возникающего при этом, очень поможет, потому что мне повторить ошибку не удалось, поэтому исправить ее я тоже не могу (я вообще слабо представляю, где здесь что-нибудь может вылетать, если честно)... |
striker |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Сворачивается окно TurboPascal
а это видно, что отображается. Разворачиваешь окно - мелькает и сворачивается |
volvo |
Сообщение
#4
|
Гость |
В таком случае - это не проблема Паскаля. У тебя что-то с ОСью не то, если окна просто так сворачиваются...
|
Krjuger |
Сообщение
#5
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Striker, а у вас случаем не Vista стоит?)))
Сообщение отредактировано: Krjuger - |
striker |
Сообщение
#6
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
нет
Он с эксплорером открытым сворачивается Вот попытался совместить с программой из соседней темы - всё, запутался. Суть та же, вывод другой Так ли я время преобразую? Код uses crt,dos,graph; const size = 50; fore = lightred; back = darkgray; type indicator = 1 .. 7; i_set = set of indicator; rec = record xs, ys, xf, yf: integer; end; arr_digits = array['0' .. '9'] of i_set; arr_lines = array[1 .. 7] of rec; const digits: arr_digits = ( [1, 2, 3, 4, 5, 6], [3, 4], [2, 3, 5, 6, 7], [2, 3, 4, 5, 7], [1, 3, 4, 7], [1, 2, 4, 5, 7], [1, 2, 4, 5, 6, 7], [2, 3, 4], [1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 7] ); lines: arr_lines = ( (xs:0; ys:0; xf:0; yf:size), (xs:0; ys:0; xf:size; yf:0), (xs:size; ys:0; xf:size; yf:size), (xs:size; ys:size; xf:size; yf:2*size), (xs:size; ys:2*size; xf:0; yf:2*size), (xs:0; ys:2*size; xf:0; yf:size), (xs:0; ys:size; xf:size; yf:size) ); var xpos, ypos: integer; procedure put_indicator(list: i_set); var i: indicator; begin for i := low(indicator) to high(indicator) do begin if i in list then setcolor(fore) else setcolor(back); with lines[i] do line(xpos + xs, ypos + ys, xpos + xf, ypos + yf); end; inc(xpos, size + 10); end; procedure print(s: string); var i: integer; begin for i := 1 to length(s) do begin case s[i] of '0' .. '9': put_indicator(digits[s[i]]); '-': put_indicator([7]); end; end; end; Function GetTime: LongInt; Var h, m, s, ms: Word; R: longint; begin Dos.GetTime(h, m, s, ms); GetTime := ms + 100 * (s + 60 * (longint(m) + 60 * h)); end; var g_driver, g_mode,i: integer; stop:boolean; curr_time:longint; s:string; begin initgraph(g_driver, g_mode, ''); xpos := 150; ypos := 150; setwritemode(xorput); i := 0; stop := false; repeat repeat curr_time := GetTime; while GetTime - curr_time < 100 do; { просто ждем 1 секунду } if keypressed then begin stop := true; while keypressed do readkey; end; str(curr_time,s); print(s); inc(i); until stop; stop:=false; readln; until keypressed; readln; closegraph; { <--- Вот так же передашь текущее время в виде строки в процедуру print } readln; closegraph; end. |
volvo |
Сообщение
#7
|
Гость |
Опять за свое... Я ж показал тебе, как надо делать основной цикл. Ты ВЫЙТИ-то из своей программы пробовал хоть когда-нибудь? То, что она у тебя "сворачивается" - не повод заставлять ДРУГИХ, у кого она НЕ сворачивается, удалять процесс...
Цитата Так ли я время преобразую? А это смотря что хочешь получить... Если число секунд, прошедших с момента запуска - то вот так:beginПроверено на ТП, запусти, если у тебя опять "сворачивается" - прогоняй антивирусы, делай с системой, что хочешь - проблема именно в ней... |
striker |
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Извини, спасибо
Только ещё лучше бы чтобы на минуты тоже переходило если больше 60 секунд И сразу 4 серых поля было, как такое сделать? |
striker |
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
volvo, помоги пожалуйста
|
volvo |
Сообщение
#10
|
Гость |
Так лучше?
Прикрепленные файлы n_sec.pas ( 2.42 килобайт ) Кол-во скачиваний: 281 |
striker |
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
ага, спасибо огромное
|
Текстовая версия | 11.01.2025 6:46 |