Inno Setup은 Pascal Script로 FinishedLabel을 사용자 정의합니다.
Oct 06 2020
Inno Setup 6.x의 목표 FinishedLabel는 코드 의 텍스트, 즉 Pascal Script 를 사용자 정의하는 것 입니다. 내가 Pascal Script를 사용하는 이유 IsAdminMode()는 true 인 경우에만 레이블을 사용자 정의 / 변경하고 싶기 때문 입니다. 어떻게 할 수 있습니까?
다음 두 가지 방법은 작동하지 않습니다.
스크립트 상수를 사용하십시오.
[Messages] FinishedLabel={code:GetFinishedLabel}[Code] function GetFinishedLabel(Param: String): String; begin Result := 'BLA'; end;"BLA"가 아닌 "{code : GetFinishedLabel}"이 표시됩니다.
에서 마법사를 사용자 지정합니다
InitializeWizard.완전한 (실패) 예 :
[Code] procedure InitializeWizard(); begin WizardForm.FinishedLabel.Caption := 'BLA'; end;은
FinishLabel여전히에서 원본 텍스트를 보여줍니다Default.isl
어떤 아이디어?
답변
2 pimpo Oct 06 2020 at 18:25
은 FinishedLabel다양한 요인에 따라 설치 마지막에 업데이트됩니다. 따라서 설정 한 값 InitializeWizard이 무시됩니다. 다음과 같이 나중에 사용자 지정 메시지를 설정해야합니다 CurPageChanged(wpFinished).
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
WizardForm.FinishedLabel.Caption := 'BLA';
end;
end;
Inno Setup이 다음과 같이 수행하는 작업을 수행하도록 코드를 개선하는 것을 고려할 수 있습니다.
- 다시 시작이 필요한 경우 고려 (
FinishedRestartLabel); - 아이콘이 생성 된 경우 (
FinishedLabelvs.FinishedLabelNoIcons); - 메시지에 맞게 레이블 높이를 조정합니다.
RunList메시지 높이에 따라 위치 이동 .