Inno Setup FinishedLabel'i Pascal Script ile özelleştirin
Inno Setup 6.x ile amacım, FinishedLabelmetni koddaki, yani Pascal Script'i özelleştirmektir . Pascal Script'i kullanmamın nedeni, etiketi yalnızca IsAdminMode()doğruysa özelleştirmek / değiştirmek istememdir. Bunu nasıl yapabilirim?
Aşağıdaki iki yaklaşım işe yaramıyor:
Komut dosyalı bir sabit kullanın:
[Messages] FinishedLabel={code:GetFinishedLabel}[Code] function GetFinishedLabel(Param: String): String; begin Result := 'BLA'; end;Bu, "BLA" yerine "{code: GetFinishedLabel}" i gösterir.
Sihirbazı içinde özelleştirin
InitializeWizard.Tam (başarısız) örnek:
[Code] procedure InitializeWizard(); begin WizardForm.FinishedLabel.Caption := 'BLA'; end;FinishLabelHala orijinal metin gösterirDefault.isl
Herhangi bir fikir?
Yanıtlar
FinishedLabelÇeşitli faktörlere göre yüklemenin sonunda güncellenir. Böylece InitializeWizard, girdiğiniz değer geçersiz kılınır. Özel mesajınızı aşağıdaki gibi daha sonra ayarlamanız gerekir CurPageChanged(wpFinished):
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
WizardForm.FinishedLabel.Caption := 'BLA';
end;
end;
Inno Kurulumunun yapacağı şeyi yapmak için kodu iyileştirmeyi düşünebilirsiniz, örneğin:
- Yeniden başlatma gerekirse hesaba katılır (
FinishedRestartLabel); - Simgeler oluşturulmuşsa (
FinishedLabelvs.FinishedLabelNoIcons) dikkate alındığında ; - Mesaja uyacak şekilde etiket yüksekliğini ayarlama;
RunListMesaj yüksekliğine göre konum değiştirme .