如何在Delphi7中增加MessageDlg宽度?

时间:2015-08-19 11:43:12

标签: delphi delphi-7

我正在使用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)

和输出是: enter image description here

以上信息以2行显示,但我想只在一行显示信息。

1 个答案:

答案 0 :(得分:9)

在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的实现中查看灵感。大概你想要包含逻辑以避免使表格太宽,超出监视器的宽度等等。