Inno Setup - 创建自定义消息框(是/否)
Inno Setup - Create custom message box (yes / no)
如何创建类似于此代码的自定义消息框:(对于具有一个按钮的消息框)但有两个按钮,yes/no,每次选择可能有不同的操作.
只需添加第二个TButton
:
function MyYesNoMessageBox: Integer;
var
Form: TSetupForm;
YesButton, NoButton: TNewButton;
MesssageLabel: TLabel;
begin
Form := CreateCustomForm;
Form.BorderStyle := bsDialog;
Form.Position := poOwnerFormCenter;
Form.ClientWidth := ScaleX(400);
Form.ClientHeight := ScaleY(130);
Form.Caption := 'Caption';
MesssageLabel := TLabel.Create(Form);
MesssageLabel.Parent := Form;
MesssageLabel.Left := ScaleX(16);
MesssageLabel.Top := ScaleX(16);
MesssageLabel.Width := Form.ClientWidth - 2*ScaleX(16);
MesssageLabel.Height := ScaleY(32);
MesssageLabel.AutoSize := False;
MesssageLabel.WordWrap := True;
MesssageLabel.Caption := 'Lorem ipsum dolor sit amet, ...';
YesButton := TNewButton.Create(Form);
YesButton.Parent := Form;
YesButton.Width := ScaleX(80);
YesButton.Height := ScaleY(24);
YesButton.Left := Form.ClientWidth - 2 * (YesButton.Width + ScaleX(8));
YesButton.Top := Form.ClientHeight - YesButton.Height - ScaleY(8);
YesButton.Caption := '&Yes';
YesButton.ModalResult := mrYes;
NoButton := TNewButton.Create(Form);
NoButton.Parent := Form;
NoButton.Width := YesButton.Width;
NoButton.Height := YesButton.Height;
NoButton.Left := YesButton.Left + YesButton.Width + ScaleX(8);
NoButton.Top := YesButton.Top;
NoButton.Caption := '&No';
NoButton.ModalResult := mrNo;
Result := Form.ShowModal;
end;
并测试 Form.ShowModal
的 return 代码(或检查 Form.ModalResult
):
if MyYesNoMessageBox = mrYes then
begin
MsgBox('Yes selected', mbInformation, MB_OK);
end
else
begin
MsgBox('No selected', mbInformation, MB_OK);
end;
如何创建类似于此代码的自定义消息框:
只需添加第二个TButton
:
function MyYesNoMessageBox: Integer;
var
Form: TSetupForm;
YesButton, NoButton: TNewButton;
MesssageLabel: TLabel;
begin
Form := CreateCustomForm;
Form.BorderStyle := bsDialog;
Form.Position := poOwnerFormCenter;
Form.ClientWidth := ScaleX(400);
Form.ClientHeight := ScaleY(130);
Form.Caption := 'Caption';
MesssageLabel := TLabel.Create(Form);
MesssageLabel.Parent := Form;
MesssageLabel.Left := ScaleX(16);
MesssageLabel.Top := ScaleX(16);
MesssageLabel.Width := Form.ClientWidth - 2*ScaleX(16);
MesssageLabel.Height := ScaleY(32);
MesssageLabel.AutoSize := False;
MesssageLabel.WordWrap := True;
MesssageLabel.Caption := 'Lorem ipsum dolor sit amet, ...';
YesButton := TNewButton.Create(Form);
YesButton.Parent := Form;
YesButton.Width := ScaleX(80);
YesButton.Height := ScaleY(24);
YesButton.Left := Form.ClientWidth - 2 * (YesButton.Width + ScaleX(8));
YesButton.Top := Form.ClientHeight - YesButton.Height - ScaleY(8);
YesButton.Caption := '&Yes';
YesButton.ModalResult := mrYes;
NoButton := TNewButton.Create(Form);
NoButton.Parent := Form;
NoButton.Width := YesButton.Width;
NoButton.Height := YesButton.Height;
NoButton.Left := YesButton.Left + YesButton.Width + ScaleX(8);
NoButton.Top := YesButton.Top;
NoButton.Caption := '&No';
NoButton.ModalResult := mrNo;
Result := Form.ShowModal;
end;
并测试 Form.ShowModal
的 return 代码(或检查 Form.ModalResult
):
if MyYesNoMessageBox = mrYes then
begin
MsgBox('Yes selected', mbInformation, MB_OK);
end
else
begin
MsgBox('No selected', mbInformation, MB_OK);
end;