2015-08-19 72 views
1

我正在使用Delphi 7.我想更改messageDlg宽度。如何增加Delphi7中的MessageDlg宽度?

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

下面是我的代码

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行显示的是,但我想只有在一行中显示的信息。

+5

谁愿意读一行文字,不需要换行就可以延伸到距离?这几乎就像你想让你的用户体验变得更糟。 –

+0

@DavidHeffernan:你说得对。但你能告诉我该怎么做。我有兴趣学习。 – DelphiLearner

+1

在Delphi的更高版本中,您会发现消息对话框实际上已经变得更小以方便易读。截图中的一个已经比我感到舒适的多。 –

回答

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的实施以获得灵感。大概你会想要包含逻辑来避免使表格太宽,扩展到超出显示器宽度等等。