試圖直接回答你的問題。
我懷疑你已經使用CreateInputOptionPage()
它返回一個TInputOptionWizardPage
這具有這樣的」。新增(‘實施例’)`方法你提到。
TInputOptionWizard
下降TWizardPage
從TComponent
下降,其中有你需要的方法。
更新:替換原來的代碼,這個例子是基於我以爲 是TRadioButton
和TCheckBox
,其中個別控制在ScriptClasses_C.pas我原來的例子的InnoSetup源代碼可用的選項進行審查。他們改爲其一個控制名爲TNewCheckListBox
。有幾種方法可以解決這個問題,但最安全的方法是使用。
這個例子是一個完整的Inno安裝腳本。
[Setup]
AppName='Test Date Script'
AppVerName='Test Date Script'
DefaultDirName={pf}\test
[Code]
const
cCheckBox = false;
cRadioButton = true;
var
Opt : TInputOptionWizardPage;
function BoolToStr(Value : Boolean) : String;
begin
if Value then
result := 'true'
else
result := 'false';
end;
procedure ClickEvent(Sender : TObject);
var
Msg : String;
I : Integer;
begin
// Click Event, allowing inspection of the Values.
Msg := 'The Following Items are Checked' +#10#13;
Msg := Msg + 'Values[0]=' + BoolToStr(Opt.Values[0]) +#10#13;
Msg := Msg + 'Values[1]=' + BoolToStr(Opt.Values[1]) +#10#13;
Msg := Msg + 'Values[2]=' + BoolToStr(Opt.Values[2]);
MsgBox(Msg,mbInformation,MB_OK);
end;
procedure InitializeWizard();
var
I : Integer;
ControlType : Boolean;
begin
ControlType := cCheckBox;
Opt := CreateInputOptionPage(1,'Caption','Desc','SubCaption',ControlType, false);
Opt.Add('Test1');
Opt.Add('Test2');
Opt.Add('Test3');
// Assign the Click Event.
Opt.CheckListBox.OnClickCheck := @ClickEvent;
end;
@Robert - 感謝。在這一行我得到一個類型不匹配的錯誤:'Radio:=(InputOptionPage as TRadioButton);'。代碼如下:'For CompIndex:= 0 to InputOptionPage.ComponentCount -1 do begin if(InputOptionPage is TRadioButton)then begin Radio:=(InputOptionPage as TRadioButton); Radio.OnClick:= RadioButtonClick; \t end; 結束; ' – rossmcm 2011-05-03 21:03:41
...我希望我知道如何在評論中正確地格式化代碼。嘆。 – rossmcm 2011-05-03 21:04:53
我看到了錯誤......這就是我沒有編譯/測試代碼的原因。注意添加.components [I] – 2011-05-03 21:12:24