2
私は3つのコンポーネントを持っており、ユーザーがコンポーネントを選択すると、インストールが行われます。ユーザーがコンポーネントを選択しない場合は、[次へ]ボタンを無効にします。Inno Setupでコンポーネントが選択されていない場合、[次へ]ボタンを無効にする方法は?
私はif not IsComponentSelected('xxx')
を試していますが、動作していません。誰も助けてくれますか?
私は3つのコンポーネントを持っており、ユーザーがコンポーネントを選択すると、インストールが行われます。ユーザーがコンポーネントを選択しない場合は、[次へ]ボタンを無効にします。Inno Setupでコンポーネントが選択されていない場合、[次へ]ボタンを無効にする方法は?
私はif not IsComponentSelected('xxx')
を試していますが、動作していません。誰も助けてくれますか?
次のボタンの状態をコンポーネント選択の変更で簡単に更新する方法はありません。簡単に
方法は次ボタンがクリックされたメッセージを表示することです:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = wpSelectComponents then
begin
if WizardSelectedComponents(False) = '' then
begin
MsgBox('No component selected', mbInformation, MB_OK);
Result := False;
end;
end;
end;
はあなたが次ボタンを無効を主張した場合に、これを使用する:
var
TypesComboOnChangePrev: TNotifyEvent;
procedure ComponentsListCheckChanges;
begin
WizardForm.NextButton.Enabled := (WizardSelectedComponents(False) <> '');
end;
procedure ComponentsListClickCheck(Sender: TObject);
begin
ComponentsListCheckChanges;
end;
procedure TypesComboOnChange(Sender: TObject);
begin
{ First let Inno Setup update the components selection }
TypesComboOnChangePrev(Sender);
{ And then check for changes }
ComponentsListCheckChanges;
end;
procedure InitializeWizard();
begin
WizardForm.ComponentsList.OnClickCheck := @ComponentsListClickCheck;
{ The Inno Setup itself relies on the WizardForm.TypesCombo.OnChange, }
{ so we have to preserve its handler. }
TypesComboOnChangePrev := WizardForm.TypesCombo.OnChange;
WizardForm.TypesCombo.OnChange := @TypesComboOnChange;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectComponents then
begin
ComponentsListCheckChanges;
end;
end;
このようなコードが必要な理由を理解するには少し仕事、を参照してくださいInno Setup ComponentsList OnClick event
@ Martin Prikrylあなたは私にこれを助けてくれますか? – preethi
誰も私にこれを行うためのいくつかの他の方法を提案できますか? – preethi
まだ参加していないユーザーに@を使用して通知することはできません。 –