delphi 关于 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.

相关阅读 >>

Delphi多媒体函数

Delphi读写文本文件 assignfile reset append

Delphi xe5 android openurl

纯真ip数据库解析Delphi d10.1下正常使用

Delphi xe datasnap服务器获取客户端ip地址

Delphi中inputbox 和inputquery 函数的使用

Delphi 调用外部 dll 中的函数(1. 早绑定)

Delphi对access数据库安全加密方法

Delphi sysem.json 链式写法

Delphi 立即停止timer

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...