FMXInno

DLL FMXInno October 27, 2024

Нет прав для скачивания
всем доброго времени суток . арни подскажите как в фмх сделать таймер установки файлов когда програесс бар идет
типо так
Осталось примерно : 1мин 34 сек и щел таймер в обратном отсчете
Прошло около : 0 мин 54 сек и тут показывало что он прибавляет тоесть общее время сколько уже ставится

и как то это синхронно нужно что бы работало когда прогресс бар дошел до конца и все файлы у становились и тогда выдало Осталось примерно : Завершение... и переключилось на страницу с кнопкой завершить. может кто знает подскажит. а то это в скрипте есть но там не че чет не работает просто так висят надписи когда идет установка и все
 
всем доброго времени суток . арни подскажите как в фмх сделать таймер установки файлов когда програесс бар идет
типо так
Осталось примерно : 1мин 34 сек и щел таймер в обратном отсчете
Прошло около : 0 мин 54 сек и тут показывало что он прибавляет тоесть общее время сколько уже ставится

и как то это синхронно нужно что бы работало когда прогресс бар дошел до конца и все файлы у становились и тогда выдало Осталось примерно : Завершение... и переключилось на страницу с кнопкой завершить. может кто знает подскажит. а то это в скрипте есть но там не че чет не работает просто так висят надписи когда идет установка и все
Не помню где его взял, но на тот момент это работало
 

Вложения

Не помню где его взял, но на тот момент это работало
спасибо. я сделал как то так
function SecondsToTime(Seconds: Cardinal): String;
var
m, s: Cardinal;
begin
m := Seconds div 60;
s := Seconds mod 60;
Result := Format('%d мин %d сек', [m, s]);
end;

procedure NewProcCallback(AHWND: HWND; AMsg, AWParam: Cardinal; ALParam: Integer);
var
S, CurrentFile: String;
Elapsed, Remaining: Cardinal;
CurPos, MaxPos: Integer;
ProgressPercent: Double;
begin
CurPos := WizardForm.ProgressGauge.Position;
MaxPos := WizardForm.ProgressGauge.Max;
Page5ProgressBar.Value(CurPos);
if MaxPos > 0 then ProgressPercent := (CurPos * 100.0) / MaxPos else ProgressPercent := 0;
if CurPos = 0 then
begin
Page5Label[3].Text('Осталось примерно : подготовка...');
Page5Label[4].Text('Прошло около : 0 сек');
exit;
end;
if ProgressPercent >= 100.0 then
begin
Page5Label[3].Text('Осталось примерно : ожидание загрузки...');
Page5Label[4].Text('Распаковка завершена');
end
else
begin
if InstallStartTime = 0 then InstallStartTime := GetTickCount;
Elapsed := (GetTickCount - InstallStartTime) div 1000;
Remaining := Round((Elapsed * (MaxPos - CurPos)) / CurPos);
if Remaining = 0 then
Page5Label[3].Text('Осталось примерно : финализация...')
else
Page5Label[3].Text('Осталось примерно : ' + SecondsToTime(Remaining));
Page5Label[4].Text('Прошло около : ' + SecondsToTime(Elapsed));
end;
CurrentFile := ExtractFileName(WizardForm.FilenameLabel.Caption);
S := ' Извлекается ' + CurrentFile;
if (length(CurrentFile) > 0) and (Page5Memo.LineStrings(Page5Memo.LineCount - 1) <> S) then
Page5Memo.AddLine(S);
end;
 
Назад
Сверху