IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> цифровой секундомер в графике, семисегментый
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


http://forum.sources.ru/index.php?showtopi...0&#entry2263928

Сворачивается экран Паскаля (турбо)
присваивание detect'а не помогает
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Так... А теперь - подробнее, что значит "экран сворачивается"? Программа завершается? Ты ее как запускал? Попробуй запусти прямо из IDE, по крайней мере получишь информацию о причинах такого поведения. Повторяю, только что проверил под TP, у меня - ничего не сворачивается, отображается заданное время...

Добавь анализ graphresult, может у тебя с инициализацией графики что-то не то?

В любом случае, указание строки, на которой прерывается выполнение программы, и сообщения, возникающего при этом, очень поможет, потому что мне повторить ошибку не удалось, поэтому исправить ее я тоже не могу (я вообще слабо представляю, где здесь что-нибудь может вылетать, если честно)...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


Сворачивается окно TurboPascal
а это видно, что отображается. Разворачиваешь окно - мелькает и сворачивается
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






В таком случае - это не проблема Паскаля. У тебя что-то с ОСью не то, если окна просто так сворачиваются...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Striker, а у вас случаем не Vista стоит?)))

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


нет smile.gif
Он с эксплорером открытым сворачивается

Вот попытался совместить с программой из соседней темы - всё, запутался. Суть та же, вывод другой

Так ли я время преобразую?

Код
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.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Опять за свое... Я ж показал тебе, как надо делать основной цикл. Ты ВЫЙТИ-то из своей программы пробовал хоть когда-нибудь? То, что она у тебя "сворачивается" - не повод заставлять ДРУГИХ, у кого она НЕ сворачивается, удалять процесс...

Цитата
Так ли я время преобразую?
А это смотря что хочешь получить... Если число секунд, прошедших с момента запуска - то вот так:

begin
initgraph(g_driver, g_mode, '');

i := 0;
repeat
stop := false;
repeat

curr_time := GetTime;
while GetTime - curr_time < 100 do;

xpos := 150; ypos := 150;
str(i, s);
cleardevice;
print(s);

if keypressed then begin
stop := true; while keypressed do readkey;
end;
inc(i);
until stop;
while not keypressed do;
finished := readkey = #27;
until finished;
closegraph;
end.
Проверено на ТП, запусти, если у тебя опять "сворачивается" - прогоняй антивирусы, делай с системой, что хочешь - проблема именно в ней...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


Извини, спасибо smile.gif
Только ещё лучше бы чтобы на минуты тоже переходило если больше 60 секунд
И сразу 4 серых поля было, как такое сделать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


volvo, помоги пожалуйста
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Так лучше?


Прикрепленные файлы
Прикрепленный файл  n_sec.pas ( 2.42 килобайт ) Кол-во скачиваний: 254
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


ага, спасибо огромное
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 6:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name