如何在 Delphi7 中增加 MessageDlg 的宽度?

How to Increase MessageDlg width in Delphi7?

我正在研究 Delphi 7. 我想更改 messageDlg 的宽度。

我的意思是我的消息测试很长,因为该消息显示在 2 行中,但我只想在一行中显示消息。

下面是我的单行代码

MessageDlg('i want to display only in oneline i want to display only in oneline i want to display only in oneline i want to display only in oneline i want to display only in oneline',mtError,[mbok],0)

输出是:

上面的消息分两行显示,但我想只显示一行。

在Delphi 7 中,MessageDlg 函数是在CreateMessageDialog 之上实现的。您可以调用该方法并将 TForm 实例返回给您。然后您可以加宽该表单,加宽其标签,然后显示该表单。

var
  Form: TForm;
  Label: TLabel;
....
Form := CreateMessageDialog(Msg, mtError, [mbOK]);
try
  Label := Form.FindComponent('Message');
  Label.Width := Label.Width + ExtraWidth;
  Form.ClientWidth := Form.ClientWidth + ExtraWidth;
  Form.Position := poScreenCenter;
  ShowModal;
finally
  Form.Free;
end;

剩下的就是让你锻炼了ExtraWidth。在 CreateMessageDialog 的实现中寻找灵感。大概您希望包含逻辑以避免使表单太宽,超出显示器的宽度等等。