2011-08-03 2 views
2
내 설치가 매우 간단합니다

, 그것은 기본적으로 :이노 설정 간단한 진행 페이지가

  1. 시작 페이지
  2. 진행률 페이지
  3. 마지막 페이지

환영 및 최종 페이지 표준 (단 하나의 버튼)입니다. 진행률 페이지에서 다른 프로그램을 자동 설치하고 있습니다.

실제 스크립트는 각 프로그램을`[Run] 섹션에 설치합니다.
막대가 100 %에 도달 한 다음 거기에 머무르는 것이 문제입니다.
메시지 텍스트 만 변경할 수 있습니다. 내가 더 정확한 진행 표시 줄을 표시 할 수 있습니다

procedure InitializeWizard; 
begin 
    ProgressPage.SetProgress(1, 100); 
    exec(.......) 
    ProgressPage.SetProgress(15, 100); 
    exec(.......) 
    ProgressPage.SetProgress(40, 100); 
    ... 
    ... 
end; 

그런 식으로 : 내가 달성하고자하는 어떤

은 (는 좀 더 유연성을 가질 수 있도록 수 있으므로), 무언가 같이 파스칼 스크립트를 사용하여 진행률을 표시하는 것입니다 .

[Code] 

var 
    ProgressPage: TOutputProgressWizardPage; 

procedure InitializeWizard; 
begin 
    ProgressPage := CreateOutputProgressPage('My App',''); 
end; 

function NextButtonClick(CurPageID: Integer): Boolean; 
var 
    I: Integer; 
begin 
    if CurPageID = wpWelcome then begin 
    ProgressPage.SetText('Starting installation...', ''); 
    ProgressPage.SetProgress(0, 0); 
    ProgressPage.Show; 
    try 
     for I := 0 to 10 do begin 
     ProgressPage.SetProgress(I, 10); 
     Sleep(100); 
     end; 
    finally 
     ProgressPage.Hide; 
    end; 
    end else 
    Result := True; 
end; 

문제는 내가 설치 프로그램을 만들 때 (설치 프로그램이 실행되고 있지만 아무것도 표시되지 않습니다) 시작 페이지를 표시하지 않는다는 것입니다 : 이것은 내가 (. 시뮬레이션 설치 예에서 촬영)가 무엇인가 .

내가 뭘 잘못하고있어?

미리 감사드립니다.

+0

Ergh, NextButtonClick 내부에서하지 ​​마십시오. CurStepChanged (ssInstall)가 가장 빠릅니다. – Deanna

+0

왜 NextButtonClick 내부에 없습니까? 처음으로 Inno Setup에서 PascalScripting을 사용하여 어떻게해야하는지 이해하지 못할 수도 있습니다. – lepe

+0

1 회 이상 호출 할 수 있기 때문에 대부분의 설치에서 사용자가 "예, 설치하십시오"라고 확인한 지점 이전입니다. – Deanna

답변

2

발견!

내가 없어진 :

  • Result := True; (대신 wpWelcome의)
  • if CurPageID = wpReadyProgressPage.Hide;
  • 문제를 해결

!

4

WizardForm.ProgressGauge을 사용하여 코드에서 실제 진행률 막대 위치를 제어 할 수 있습니다.

+0

몇 가지 예를 들어 주시겠습니까? 어떻게 사용되는지 찾을 수 없습니다 (문서 만). – lepe

+0

예제가 없지만 액세스해야하는 속성을 나타내는 Object reference int help가 있습니다. [실행] 항목의 Before/AfterInstall 항목에서 호출 할 수 있습니다. – Deanna

+0

WizardForm.ProgressGauge를 사용하면 더 간단하고 우아해질 것입니다. 그러나 예제가 없기 때문에 설치 프로그램이 제대로 작동하고 있으므로 제안 사항에 대해 투표를 할 수 있습니다. 나는 그것을 테스트 할 수없는 정답으로 설정할 수 없다. 난 당신이 이해 바랍니다. – lepe