Программа с GetTime (или GetDate?) при запуске из windows предлагает ввести новое время. Старые ф-ии выполняют новые действия или я опять что-то сломал?
volvo
22.12.2009 20:28
Цитата
Программа с GetTime (или GetDate?) при запуске из windows предлагает ввести новое время.
Ошибка в общем случае не воспроизводится. Под WinXP + TP7 GetTime работает совершенно так же, как и под ДОС... Приводи код, если нужна более детальная помощь.
TarasBer
24.12.2009 1:07
Я спрошу немного о другой проблеме времени. Если графическое приложение свернуть, а потом через минуту развернуть, то где-то с минуту время будет догонять настоящее. При написании игр, использующих таймер, это очень мешает.
volvo
24.12.2009 1:43
Цитата
Если графическое приложение свернуть, а потом через минуту развернуть, то где-то с минуту время будет догонять настоящее.
Не подтверждается.
Вот эта программа(Показать/Скрыть)
uses dos, graph, crt;
procedure PrintTime;
function IntToStr(I: Longint): string; var s: string; begin Str(I, s); if length(s) < 2 then s := '0' + s; IntToStr := s; end;
var hr, min, sec, hnd: word; s: string; begin clearviewport; gettime(hr, min, sec, hnd); s := inttostr(hr) + ':' + inttostr(min) + ':' + inttostr(sec) + '.' + inttostr(hnd); outtextxy(getmaxx div 4, 5 + textheight('W'), s); end; var Driver, Mode: integer; Err: integer;
begin initgraph(Driver, Mode, ''); Err := graphresult; if Err = grOk then begin setviewport(0, 0, getmaxx div 2, 10 + textheight('W'), clipon); settextjustify(centertext, centertext); repeat PrintTime; if keypressed then case readkey of #27: break; end; delay(50); until false; closegraph; end else writeln('error on InitGraph: ', grapherrormsg(Err)); end.
была откомпилирована, запущена, свернута и на 4 минуты я про нее забыл (проверял почту через браузер). Потом развернул - время не отстало ни на секунду...
TarasBer
24.12.2009 3:40
Win XP SP2?
andriano
24.12.2009 16:07
Цитата(TarasBer @ 23.12.2009 21:07)
Я спрошу немного о другой проблеме времени. Если графическое приложение свернуть, а потом через минуту развернуть, то где-то с минуту время будет догонять настоящее. При написании игр, использующих таймер, это очень мешает.
Встречал такой эффект в DOS-программах, запущенных в Windows. IMHO хоть это и не всегда удобно, но, тем не менее, логично: DOS-сессиия должна получить эмуляцию всех аппаратных прерываний таймера. В свернутом состоянии она ничего не получает. Ничего не остается, как в ускоренном темпе скормить ей все эти прерывания после разворачивания - вплоть до момента, когда внутренние часы DOS-сессии догонят системные.
volvo
24.12.2009 16:25
Цитата
Win XP SP2?
SP3
TarasBer
24.12.2009 23:16
Цитата(volvo @ 24.12.2009 12:25)
SP3
В ней другой ntvdm? Его можно как-то настроить или заменить?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.