我在Windows上运行Lazarus。我真的很想制作节目" Beep"。您似乎可以使用以下方法在Pascal中执行此操作:
windows.beep(300,500);
但不是拉撒路!我可以使用另一个命令吗?
更新:
sysutils.beep()
这很有效,但我真的很想设置声音的频率和持续时间
答案 0 :(得分:7)
Afaik这是功能已久的功能。 (Dev Pascal已超过十年)。
不同的是,Lazarus不会像Delphi那样自动将Windows添加到uses子句中。
答案 1 :(得分:5)
如果未在Lazarus中声明此功能,您可以将其声明为:
function Beep(dwFreq, dwDuration: DWORD): BOOL; stdcall; external 'kernel32.dll';
答案 2 :(得分:0)
在Lazarus中创建一个新项目并添加一个按钮。将windows单元添加到使用列表中。 在按钮默认事件中输入您的代码:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
windows; // added by manually
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
n,
freq,dur : integer;
begin
Randomize;
for n:=1 to 100 do
begin
windows.Beep(random(1000)+n,random(100)+100);
end;
end;
end.