我正在使用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)
以上信息以2行显示,但我想只在一行显示信息。
答案 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
的实现中查看灵感。大概你想要包含逻辑以避免使表格太宽,超出监视器的宽度等等。