2015-09-26 4 views
0

Я хотел показать оставшееся время во время установки, как в следующем вопросе и использовал код оттуда, отправленный TLama: How to show percent done, elapsed time and estimated time progress?Как указать период, в течение которого метка оставшегося времени обновляется в Inno Setup?

код работает для меня, так что спасибо за это. Но если вы устанавливаете большие файлы, период, в котором обновляется «оставшееся время метки», выполняется слишком быстро.

Так что я хотел спросить, как изменить период обновления «метки оставшегося времени», чтобы он обновлялся только каждую секунду или каждую половину секунды.

Заранее спасибо

ответ

0

Использование GetTickCount помнить время последнего обновления. На следующих вызовах CurInstallProgressChanged разницы рассчитайте в CurTick и обновить метки, только если разница достаточно велика (1000 = 1 секунда)

var 
    LastUpdate: DWORD; 

procedure CurInstallProgressChanged(CurProgress, MaxProgress: Integer); 
var 
    CurTick: DWORD; 
begin 
    CurTick := GetTickCount; 
    if (CurTick - LastUpdate) >= 1000 then 
    begin 
    LastUpdate := CurTick; 
    // Update labels 
    end; 
end; 
+0

Спасибо, я пытался, но я сделал что-то неправильно, потому что я не вижу этикеток больше. Я добавил следующее в 'procedure CurInstallProgressChanged (CurProgress, MaxProgress: Integer);' var CurTick: DWORD; LastTick: DWORD; 'и' begin LastTick: = GetTickCount; если LastTick-CurTick = 1000, то begin ... (LABELS) 'Извините, я не так хорош в программировании, и я не знаю, что я делаю неправильно :-(Было бы очень приятно, если бы кто-то мог мне помочь – stonemaster

+0

Я разместил полный код с изменениями там: [link] (http://pastebin.com/Ym7ZteAR) – stonemaster

+0

Спасибо, что работает для меня. Не ожидал, что это будет так просто, чувствуя себя действительно теперь глупо ... – stonemaster

 Смежные вопросы

  • Нет связанных вопросов^_^