Ho preparato uno script semplice che visualizza l'immagine sotto ProgressGauge
bar su wpInstalling
Pagina.Inno Setup - Visualizzazione di più immagini (slideshow) su wpInstallazione della pagina nella barra ProgressGauge
Ma ... Ho bisogno di funzionalità più complesse.
Quello che mi serve sono le immagini multiple mostrano, ciascuna dopo X (ad esempio 7) secondi (con loop quando l'installazione è più lunga di X secondi * numero di immagini) o ciascuna dopo X (per esempio 10) percento di installazione. Ho provato a incorporare le immagini in ProgressGauge.Position
, ma non sono riuscito.
Ecco quello che ho:
procedure CurPageChanged(CurPageID: Integer);
var
BmpFile: TBitmapImage;
begin
ExtractTemporaryFile('01.bmp');
ExtractTemporaryFile('02.bmp');
ExtractTemporaryFile('03.bmp');
if CurPageID = wpInstalling then
begin
BmpFile:= TBitmapImage.Create(WizardForm);
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\01.bmp'));
BmpFile.Width:= ScaleX(420);
BmpFile.Height:= ScaleY(180);
BmpFile.Left := WizardForm.ProgressGauge.Left + ScaleX(0);
BmpFile.Top := WizardForm.ProgressGauge.Top + ScaleY(35);
// BmpFile.Parent:= WizardForm.InstallingPage;
// BmpFile:= TBitmapImage.Create(WizardForm);
// BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\03.bmp'));
// BmpFile.Width:= ScaleX(420);
// BmpFile.Height:= ScaleY(400);
// BmpFile.Left := WizardForm.ProgressGauge.Left + ScaleX(0);
// BmpFile.Top := WizardForm.ProgressGauge.Top + ScaleY(35);
// BmpFile.Parent:= WizardForm.InstallingPage;
// BmpFile:= TBitmapImage.Create(WizardForm);
// BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\03.bmp'));
// BmpFile.Width:= ScaleX(420);
// BmpFile.Height:= ScaleY(400);
// BmpFile.Left := WizardForm.ProgressGauge.Left + ScaleX(0);
// BmpFile.Top := WizardForm.ProgressGauge.Top + ScaleY(35);
// BmpFile.Parent:= WizardForm.InstallingPage;
end;
end;
L'obiettivo è:
Sul wpInstalling
ci dovrebbe essere X immagini visualizzate, ogni successivo per X secondi o dopo X per cento di installazione.
Questo ha risolto il mio problema! Ho aggiunto il Global Var Index: Integer; e leggermente modificato il codice per le immagini (IntToStr) – RobeN
Sì, lì si può avere il contatore del tempo o accedere allo stato di avanzamento se necessario. Ecco perché ho mostrato solo come implementare l'evento del timer per il tuo caso ;-) Ma forse dovresti anche controllare lo stato del tuo stato di avanzamento lì, perché non apparirebbe così bello se si verifica un errore e ruoterai comunque la tua presentazione. Penso che dovresti far scorrere le tue immagini solo quando 'WizardForm.ProgressGauge.State = npbsNormal', ma è anche su di te. Vedi ['here'] (http://www.jrsoftware.org/ishelp/topic_scriptclasses.htm#TNewProgressBarState) per gli stati di avanzamento disponibili. – TLama
L'ho fatto. Funzione speciale per 'Paused', per' Error' e per 'Position = Max' (durante l'installazione di app di terze parti). Grazie per l'aiuto e il supporto! – RobeN