不久前我问了一个问题: “如何为 Steam 和 Epic Games 创建单独的安装路径,通过单选按钮选择,或自定义安装的路径框?”,Martin Prikryl 对此给予了很好的回应。不幸的是,由于我没有澄清我在用户体验方面的具体计划,我遇到了一些麻烦。我尝试修复它,但我就是无法理解他的
[Code
] 中控制按钮创建的这一小部分。
马丁的部分
:[Code]
var
SteamButton: TNewRadioButton;
EpicButton: TNewRadioButton;
CustomButton: TNewRadioButton;
function CreateButton(var Top: Integer): TNewRadioButton;
begin
Result := TNewRadioButton.Create(WizardForm);
Result.Parent := WizardForm.DirEdit.Parent;
Result.Top := Top;
Result.Left := WizardForm.SelectDirBrowseLabel.Left;
Result.Width := Result.Parent.ClientWidth - Result.Left;
Result.OnClick := @DirButtonClick;
Top := Result.Top + Result.Height + ScaleY(24);
end;
任何人都可以解释如何分离按钮,而不是路径框吗?
此处显示所需内容的示例:
如果每个单选按钮后需要不同的间距,请将间距代码移出共享
CreateButton
实现:
SteamButton := CreateButton();
SteamButton.Caption := '&Steam';
SteamButton.Enabled := DirExists(SteamDirName);
SteamButton.Top := WizardForm.SelectDirBrowseLabel.Top;
EpicButton := CreateButton();
EpicButton.Caption := '&Epic Games';
EpicButton.Enabled := DirExists(EpicDirName);
EpicButton.Top := SteamButton.Top + SteamButton.Height + ScaleY(24);
CustomButton := CreateButton();
CustomButton.Caption := '&Custom path:';
CustomButton.Top := EpicButton.Top + EpicButton.Height + ScaleY(24);
Top := CustomButton.Top + CustomButton.Height + ScaleY(8);
WizardForm.DirBrowseButton.Top :=
WizardForm.DirBrowseButton.Top + (Top - WizardForm.DirEdit.Top);
WizardForm.DirEdit.Top := Top;