2010-02-17 22 views
6

'daki görevler aracılığıyla özel kod başlatın Bir kullanıcı yükleme sırasında karşılık gelen bir onay kutusunu denetlerse, bir kod yürütmek istiyorum. Yardım dosyasını okumadan, görevi kullanmanın tek yolu Dosya/Simgeler/etc içindeki bir girdiyle ilişkilendirmektir. Bölüm. Kod bölümündeki bir prosedürle ilişkilendirmeyi çok isterim. Bu yapılabilir mi ve eğer öyleyse, nasıl?Inno Kurulumu

cevap

4

siz burada kullanıcı bu sayfadaki "İleri" tıkladığında tüm seçili onay kutuları için kod onay kutuları ve yürütmek olan özel bir sihirbaz sayfasını ekleyerek: ya

[Code] 
var 
    ActionPage: TInputOptionWizardPage; 

procedure InitializeWizard; 
begin 
    ActionPage := CreateInputOptionPage(wpReady, 
    'Optional Actions Test', 'Which actions should be performed?', 
    'Please select all optional actions you want to be performed, then click Next.', 
    False, False); 

    ActionPage.Add('Action 1'); 
    ActionPage.Add('Action 2'); 
    ActionPage.Add('Action 3'); 

    ActionPage.Values[0] := True; 
    ActionPage.Values[1] := False; 
    ActionPage.Values[2] := False; 
end; 

function NextButtonClick(CurPageID: Integer): Boolean; 
begin 
    Result := True; 
    if CurPageID = ActionPage.ID then begin 
    if ActionPage.Values[0] then 
     MsgBox('Action 1', mbInformation, MB_OK); 
    if ActionPage.Values[1] then 
     MsgBox('Action 2', mbInformation, MB_OK); 
    if ActionPage.Values[2] then 
     MsgBox('Action 3', mbInformation, MB_OK); 
    end; 
end; 

onay kutuları can liste kutusundaki standart kontroller veya öğeler olsun, ayrıntılar için Pascal Scripting üzerindeki Inno Setup belgelerine bakın.

Belirli bir bileşenin veya görevin seçilip seçilmediğine bağlı olarak kodunuzun yürütülmesini istiyorsanız, bunun yerine IsComponentSelected() ve IsTaskSelected() işlevlerini kullanın.

11

Kendi sihirbaz sayfanızı tanımlamanıza gerek yoktur. Bunları yalnızca ek görevler sayfasına ekleyebilirsiniz.

[Tasks] 
Name: associate; Description:"&Associate .ext files with this version of my program"; GroupDescription: "File association:" 

[Code] 
function NextButtonClick(CurPageID: Integer): Boolean; 
begin 
    Result := True; 
    if CurPageID = wpSelectTasks then 
    begin 
    if WizardForm.TasksList.Checked[1] then 
     MsgBox('First task has been checked.', mbInformation, MB_OK); 
    else 
     MsgBox('First task has NOT been checked.', mbInformation, MB_OK); 
    end; 
end; 

Kredi this post için tlama gider.

İlgili konular