ビープ音
DelphiでBeep手続きを使うと標準の警告音を鳴らすことができますが、これはサウンドボードが入っていれば、Chord.wavか何かが再生されます。つまりホントのビープ音(ブザー)は鳴りません。
どうしてもブザーを鳴らせたいときは、API関数を使う必要があります。WIN32でもBeep関数があるのでこれを使うとブザーを鳴らすことができます。API関数のBeepはWindowsモジュールに含まれていないので、エディタで宣言を追加してやる必要があります。サンプルを下に示します。
Beep(Win32 API)の使用例
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.DFM} { Win32 API関数の宣言 } function Beep(dwFreq: LongWord; dwDuration: LongWord): LongBool; stdcall; external 'Kernel32.dll'; { ビープ音を鳴らす } procedure TForm1.Button1Click(Sender: TObject); var Freq, Duration: LongWord; begin Freq := StrToInt(Edit1.Text); // Hz Duration := StrToInt(Edit2.Text); // ms Beep(Freq, Duration); end; procedure TForm1.Button2Click(Sender: TObject); begin Close end; end. |