我正在使用Delphi,我想在MessageDlg的按钮中显示自定义文本,如此处所述.最好的方法是什么?
我知道这个问题从那时起就已经存在(例如,显示自定义消息对话框的最佳方式),但我仍然找不到我想要的东西.
我开始是这样的:
class function TAttracsForm.MessageDlg(const aMsg: string; aDlgType: TMsgDlgType; Buttons: TMsgDlgButtons; aCaptions: array of String; aDefault: TMsgDlgBtn): TModalResult;
var
vDlg: TForm;
i: Integer;
begin
if aButtons.Count = aCaptions.Count then
begin
vDlg := CreateMessageDialog(aMsg, aDlgType, Buttons);
try
for i := 0 aCaptions.Count - 1 do
TButton(vDlg.FindComponent(Buttons[i].Caption)).Caption := aCaptions[i];
vDlg.Position := poDefaultPosOnly;
Result := vDlg.ShowModal;
finally
vDlg.Free;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
电话会看起来像:
if (MessageDlg('Really quit application ?', mtWarning,
[mbNo, mbCancel, mbYes], {'No save', 'Cancel', 'Save'}) = mrYes) then
Run Code Online (Sandbox Code Playgroud)
但上面的代码当然不编译.我不知道如何在循环中获取一个集合中的一个项目以及如何在开始时获取它的总计数.