2015-04-24 18 views
1

如何在一個Delphi 7的過程以使用特定的字體名稱和它的大小,象下面這樣:如何在消息框中使用特定的字體?

procedure TForm1.infoClick(Sender: TObject); 
begin 
    ShowMessage(
    '- Lorem ipsum dolor sit amet.'+chr(10)+ 
    '- Lorem ipsum dolor sit amet.'+chr(10)+ 
    '- Lorem ipsum dolor sit amet.' 
); 
end; 
+2

'ShowMessage'使用系統字體,我懷疑你可以在沒有系統變化的情況下改變它 –

+1

你可以創建一個表單,在其上放置一個標籤,設置標籤的字體和大小。當你想顯示你的信息時,在該表單上做一個ShowModal。 –

+2

輕鬆使用自定義窗體來顯示消息;困難之處在於:使用CBT鉤子捕獲Windows對話框的句柄,然後檢查「HCBT_ACTIVATE」代碼,最後使用「WM_SETFONT」消息更改字體。 – RRUZ

回答

7

Dialogs單元沒有在MessageDlg函數用於創建消息形式功能CreateMessageDialog: TForm。你可以用一些定製使用表格顯示前:

procedure TForm5.Button1Click(Sender: TObject); 
var 
    i: Integer; 
begin 
    with CreateMessageDialog('- Lorem ipsum dolor sit amet.', mtInformation, [mbOk], mbOk) do 
    try 
    // Sets font for whole form including buttons 
    { 
    Font.Name := 'Times New Roman'; 
    Font.Size := 12; 
    } 
    // Sets font for label(s) only 
    for i := 0 to ControlCount - 1 do 
     if Controls[i] is TLabel then 
     with Controls[i] as TLabel do 
     begin 
      Font.Name := 'Times New Roman'; 
      Font.Size := 12; 
     end; 
    ShowModal; 
    finally 
    Free; 
    end; 
end; 
0

您可以創建自己的形式和風格它,但是你需要:

  1. 創建自定義TForm的
  2. 將一個標籤和/或其他元素,併爲他們分配任何你想要的字體和樣式。
  3. 創建一個函數,該函數將操縱表單並將其與ShowModal一起顯示給用戶。
+0

@KenWhite評論的複製過去。我個人更喜歡在評論中暗示提問者,而不是完全的答案。祝你好運! – Abelisto

+0

@Abelisto:現在停下來思考一下,你是否倒下了答案或這個人? – Kromster

+0

aaa @KromStern如果對這個問題有些評論會給出答案 - Asker可以寫出答案並將其作爲解決方案進行投票。我個人認爲這是完美的做法。您正在將文本從不是您的意見覆制到答案。正如我所看到的,「克羅姆斯特恩」不是「RzV」祝你好運。 – Abelisto

相關問題