delphi报警声音 Beep、MessageBeep 和 Windows.Beep

发布时间:2016-12-7 22:39:06 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"delphi报警声音 Beep、MessageBeep 和 Windows.Beep",主要涉及到delphi报警声音 Beep、MessageBeep 和 Windows.Beep方面的内容,对于delphi报警声音 Beep、MessageBeep 和 Windows.Beep感兴趣的同学可以参考一下。

转自:http://blog.csdn.net/yunqian09/article/details/5554527 我的办法,增加一个timer 设置间隔100ms,通过timer的使能否,控制报警声音开关 procedure TForm1.Timer1Timer(Sender: TObject); begin    Windows.Beep(1200+i_f,10+i_f);    if i_f<2000 then    begin       inc(i_f);    end end;     =============================================== 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. 音频表在http://www.cnblogs.com/del/archive/2008/10/22/1316380.html 下面的程序会演奏<奥运会主题歌>的第一句: 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.  var         I   :   Integer;     begin         for   I   :=   0   to   1000   do             Windows.Beep(1200   +   I,   10   +   I);     end;         在机器发出声音的时候,窗体是无法进行任何操作的 ===================================== 如果你要播放基本的系统声音,则要用适当的参数调用MessageBeep。如果你要用扬声器发声,就调用MessageBeep(-1);。   要播放一个WAV声音,你可以使用对象TmediaPlayer,但如果你要快速播放,最简单的方法是调用API函数sndPlaySound(在mmsystem单元中声明)。      例如:               procedure TForm1.Button1Click(Sender: TObject);               begin                 sndPlaySound('C:/Windows/Media/Tada.wav',                   SND_NODEFAULT Or SND_ASYNC Or SND_LOOP);               end;               procedure TForm1.Button2Click(Sender: TObject);               begin                 sndPlaySound(nil, 0); //停止发音               end;             如果你要经常播放一种声音,就应该考虑把文件载入内存并从内存中播放:               var                 tada: string;               procedure TForm1.Button1Click(Sender: TObject);               begin                 sndPlaySound(Pointer(tada), SND_MEMORY                   Or SND_NODEFAULT Or SND_ASYNC);               end;               initialization                 tada := LoadFile('C:/Windows/Media/Tada.wav');               finalization                 tada := '; //释放字符串占用的内存。               end.

上一篇:Android 开发学习手记(一):更改PullToRefresh的标签
下一篇:变量内存分配问题

相关文章

相关评论