Delphi 在 SysUtils 單元定義 Beep 方法, 可以發出一個聲音, 一般用於提醒和調試.
Beep 其實是調用的 API 函數: MessageBeep(MB_OK);
MessageBeep 有下面幾種用法可以調用幾種不同的音效檔:
MessageBeep(MB_OK);MessageBeep(MB_ICONHAND);MessageBeep(MB_ICONQUESTION); {這個不響, 不知道為什麼}MessageBeep(MB_ICONEXCLAMATION);MessageBeep(MB_ICONASTERISK);MessageBeep($FFFFFFFF); {同 MessageBeep(MB_OK);}
Beep 同時也是一個 API 函數, 它可以指定聲音的高度和長度; 因為和 SysUtils.Beep 重名了, 所以應該這樣調用:
Windows.Beep(音高, 長度);
譬如: Windows.Beep(440, 2000); 會把一個國際標準音(440HZ)演奏 2 秒鐘.
另外第一個參數的取值範圍是: $25 - $7FFFF.
下面的程式會演奏的第一句:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);const t = 800;begin Windows.Beep(330, t); Windows.Beep(392, t); Windows.Beep(262, t*2); Windows.Beep(294, t); Windows.Beep(330, t); Windows.Beep(196, t*2); Windows.Beep(262, t); Windows.Beep(294, t); Windows.Beep(330, t); Windows.Beep(392, t); Windows.Beep(294, t*4);end;end.