Inno Setup menyesuaikan FinishedLabel dengan Pascal Script
Tujuan saya dengan Inno Setup 6.x adalah untuk menyesuaikan FinishedLabelteks dalam kode, yaitu Pascal Script. Alasan mengapa saya menggunakan Pascal Script adalah karena saya hanya ingin menyesuaikan / mengubah label jika IsAdminMode()benar. Bagaimana saya bisa melakukan itu?
Dua pendekatan berikut tidak berhasil:
Gunakan konstanta skrip:
[Messages] FinishedLabel={code:GetFinishedLabel}[Code] function GetFinishedLabel(Param: String): String; begin Result := 'BLA'; end;Ini menunjukkan "{code: GetFinishedLabel}" bukan "BLA".
Sesuaikan wizard di
InitializeWizard.Contoh lengkap (gagal):
[Code] procedure InitializeWizard(); begin WizardForm.FinishedLabel.Caption := 'BLA'; end;Gambar
FinishLabeldiam menunjukkan teks asli dariDefault.isl
Ada ide?
Jawaban
Ini FinishedLabeldiperbarui di akhir penginstalan menurut berbagai faktor. Jadi nilai yang Anda tetapkan InitializeWizarddiganti. Anda harus mengatur pesan khusus Anda nanti, seperti di CurPageChanged(wpFinished):
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
WizardForm.FinishedLabel.Caption := 'BLA';
end;
end;
Anda dapat mempertimbangkan untuk meningkatkan kode untuk melakukan apa yang akan dilakukan Inno Setup, seperti:
- Memperhatikan, jika restart diperlukan (
FinishedRestartLabel); - Memperhatikan, jika ikon dibuat (
FinishedLabelvs.FinishedLabelNoIcons); - Menyesuaikan tinggi label agar sesuai dengan pesan;
- Menggeser
RunListposisi sesuai dengan tinggi pesan.