Inno Setupを使用して作成したプログラムインストーラを実行しているときにNice Welcome Animated GIFを表示します。ループコマンドまたは関数Inno Setupで条件がTrueになるまで
私はセットアップがコードの私のトンを初期化が終了するまで、Isgsg.dll
を使用して(Inno Setupのは、まだアニメーションGIFの表示をサポートしていませんので)ために、いくつかのPNG画像を表示したいです。
これらのPNG画像を順番に表示するコードを書きましたが、最後に表示された後で停止します。
前回表示された後に最初のPNG画像から表示を続ける必要があります。
セットアップが初期化されている場合(つまり、WizardForm
が表示されている場合)、ループ処理が停止するはずです。
function InitializeSetup(): Boolean;
var
DlgWait: TForm;
if Result = True then begin
ExtractTemporaryFile('Welcome1.png');
ExtractTemporaryFile('Welcome2.png');
ExtractTemporaryFile('Welcome3.png');
ExtractTemporaryFile('Welcome4.png');
ExtractTemporaryFile('Welcome5.png');
ExtractTemporaryFile('Welcome6.png');
ExtractTemporaryFile('Welcome7.png');
< < <ルーピングは、ここから始めるべき>>>
ShowSplashScreen(DlgWait.Handle,ExpandConstant('{tmp}\Welcome1.png'),0250,1000,0250,0,255,True,$FFFFFF,10);
ShowSplashScreen(DlgWait.Handle,ExpandConstant('{tmp}\Welcome2.png'),0250,1000,0250,0,255,True,$FFFFFF,10);
ShowSplashScreen(DlgWait.Handle,ExpandConstant('{tmp}\Welcome3.png'),0250,1000,0250,0,255,True,$FFFFFF,10);
ShowSplashScreen(DlgWait.Handle,ExpandConstant('{tmp}\Welcome4.png'),0250,1000,0250,0,255,True,$FFFFFF,10);
ShowSplashScreen(DlgWait.Handle,ExpandConstant('{tmp}\Welcome5.png'),0250,1000,0250,0,255,True,$FFFFFF,10);
ShowSplashScreen(DlgWait.Handle,ExpandConstant('{tmp}\Welcome6.png'),0250,1000,0250,0,255,True,$FFFFFF,10);
ShowSplashScreen(DlgWait.Handle,ExpandConstant('{tmp}\Welcome7.png'),0250,1000,0250,0,255,True,$FFFFFF,10);
< < <ルーピングはここからIF NOT WizardForm
継続すべきである:
コードは、私はそれらのPNG画像を表示するために書きました視認可能、そうでなければループを止めるべきである>>>
...
end;
どうすればいいですか?
更新QUESTION
このコードが動作しない理由を私は考えることはできません。
このDLLには、PNGファイルのファイル名がAnsiString
である必要があります。
しかし、私はString
を提供しました。
これは間違っているのでしょうか他のSynatxエラーですか?
Not Working
は、Loop Procedureが動作していないPNG画像を意味します。
コードは、私がRepeat Until
を使用して、この条件付きループを行うために追加しようとしました:
function InitializeSetup(): Boolean;
var
DlgWait: TForm;
IMessageHandler: TForm;
X: Integer;
ErrorCode: Integer;
LblWait: TLabel;
if Result := True then begin
DlgWait := TForm.Create(nil);
DlgWait.Hide;
begin
Order:=1;
Repeat
ShowSplashScreen(DlgWait.Handle,ExpandConstant('{tmp}\Welcome+IntToStr(Order)+.png'),0250,1000,0250,0,255,True,$FFFFFF,10);
Order:=Order+1;
Until FileExists(ExpandConstant('{tmp}\Welcome+IntToStr(Order)+.png')) = False;
end;
end;
は、構文エラーがありますか?
コンパイラは、コンパイラの警告またはエラーを表示しません。
ありがとうございました。
両方ここと、正しくコードをフォーマットすることを学ぶしてくださいあなたのコード/テキストエディタで。これは、読みやすく、管理しやすくします。コンパイラは空白を気にしないので、カンマの後に空白を適切にインデントして配置すると、+記号の前後にはキーストローク以外のコストはかからず、長期的には頭痛や視力を節約します。 –