Przygotowałem prosty skrypt wyświetlający obraz pod numerem ProgressGauge
na stronie wpInstalling
.Ustawienia Inno - wyświetlanie wielu obrazów (pokaz slajdów) na wpInstworzenie strony pod paskiem paska postępu
Ale ... potrzebuję bardziej złożonej funkcjonalności.
Potrzebuję wielu obrazów, każdy po X (np. 7) sekund (z pętlą, gdy instalacja trwa dłużej niż Xs * liczba obrazów) lub po X (na przykład 10) procent instalacji. Próbowałem osadzić obrazy wyświetlane w ProgressGauge.Position
, ale mi się nie udało.
Oto co mam:
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;
Celem jest:
Na wpInstalling
nie powinno być wyświetlane obrazy X, każda następna za X sekund lub po X procent instalacji.
To rozwiązało mój problem! Dodałem globalny Indeks Var: Integer; i nieznacznie zmodyfikowany kod dla obrazów (IntToStr) – RobeN
Tak, możesz mieć licznik czasu lub dostęp do wskaźnika postępu, jeśli potrzebujesz. Dlatego pokazałem tylko, jak wdrożyć zdarzenie licznika czasu dla ciebie ;-) Ale może powinieneś również sprawdzić stan wskaźnika postępu, ponieważ nie będzie tak dobrze, jeśli wystąpi błąd i nadal będzie obracać pokaz slajdów. Myślę, że powinieneś przesuwać swoje obrazy tylko wtedy, gdy 'WizardForm.ProgressGauge.State = npbsNormal', ale to także na ciebie. Zobacz ['here'] (http://www.jrsoftware.org/ishelp/topic_scriptclasses.htm#TNewProgressBarState) dla dostępnych stanów postępu. – TLama
Zrobiłem. Specjalna funkcja dla 'Paused', dla' Error' oraz dla 'Position = Max' (podczas instalowania aplikacji innych producentów). Dzięki za pomoc i wsparcie! – RobeN