我準備了一個簡單的腳本,在wpInstalling
頁面的ProgressGauge
欄中顯示圖像。Inno Setup - 在ProgressGauge下的wpInstalling頁面上顯示多個圖像(幻燈片)
但是...我需要更復雜的功能。我需要的是多個圖像顯示,每個圖像顯示X(例如7)秒(安裝時長度超過X秒*圖像數量)或X(例如10%)安裝後的每個圖像。我試圖在ProgressGauge.Position
中嵌入圖像顯示,但是我失敗了。
以下是我有:
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;
的目標是:
在wpInstalling
應該有顯示的X圖像,每X秒或安裝的X%之後,每一個後續。
這解決了我的問題! 我已添加全局變量索引:Integer;並稍微修改圖像代碼(IntToStr) – RobeN 2012-04-13 09:14:36
是的,那裏你可以有時間計數器或訪問進度表,如果你需要。這就是爲什麼我只展示瞭如何爲你實現計時器事件的原因;-)但是,也許你應該在那裏檢查進度表狀態,因爲如果發生錯誤,它看起來不太好,你仍然會旋轉你的幻燈片。我想你應該只在'WizardForm.ProgressGauge.State = npbsNormal'時滑動你的圖片,但它也是你的。請參閱['here'](http://www.jrsoftware.org/ishelp/topic_scriptclasses.htm#TNewProgressBarState)瞭解可用的進度狀態。 – TLama 2012-04-13 09:25:03
我做到了。 「暫停」,「錯誤」和「位置=最大」的特殊功能(第三方應用安裝期間)。感謝您的幫助和支持! – RobeN 2012-04-13 13:46:56