2015-08-19 67 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的實施以獲得靈感。大概你會想要包含邏輯來避免使表格太寬,擴展到超出顯示器寬度等等。