關於 Beep、MessageBeep 和 Windows.Beep

來源:互聯網
上載者:User
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.
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.