【问题标题】:Lazarus Pascal beep command拉撒路帕斯卡蜂鸣命令
【发布时间】:2014-06-27 17:25:59
【问题描述】:

我在 Windows 上运行 Lazarus。我真的很想让程序“哔”。看来您可以在 Pascal 中使用:

windows.beep(300,500);

但不是在拉撒路!我可以使用其他命令吗?

更新:

sysutils.beep()

这可行,但我真的很想设置声音的频率和持续时间

【问题讨论】:

    标签: pascal lazarus


    【解决方案1】:

    Afaik 这是一个可以使用很长时间的功能。 (Dev Pascal 已经十多岁了)。

    不同的是,Lazarus 不会像 Delphi 那样自动将 Windows 添加到 uses 子句中。

    【讨论】:

    • 有什么简单的解决办法吗?我真的很想为我正在运行的课程调整频率和持续时间
    • 不需要解决方法。只需将 windows 添加到 uses 子句,它应该可以工作。
    • 啊,我明白你的意思了,所以use Windows; 修复了它。谢谢!
    【解决方案2】:

    如果这个函数没有在 Lazarus 中声明,你可以这样声明:

    function Beep(dwFreq, dwDuration: DWORD): BOOL; stdcall; external 'kernel32.dll';
    

    【讨论】:

    • 谢谢 Vitaliy,你能说明一下它是怎么称呼的吗?我试过 Beep(300,300);但它返回一个错误:unit1.pas(34,3) 错误:为调用“Beep”指定的参数数量错误
    • 声明后就可以像beep(300,500);一样调用
    • procedure TForm1.Button1Click(Sender: TObject);开始哔(300,300);结尾;函数哔声(dwFreq,dwDuration:DWORD):BOOL;标准调用;外部'kernel32.dll';代码如上
    • 它在 DEV pascal 中对我有用,只需将 BOOL 更改为 boolean: function Beep(dwFreq, dwDuration: DWORD): boolean;标准调用;外部'kernel32.dll'; //更改第一个参数并播放您喜欢的歌曲
    • 只要调用它Windows.beep(300,500)
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-06
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多