关于 Beep、MessageBeep 和 Windows.Beep

关于 Beep、MessageBeep 和 Windows.Beep
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;

interface

uses
  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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值