[Back to WIN-OS2 SWAG index] [Back to Main SWAG index] [Original]

    program SoundProg;
    uses WinTypes, WinProcs, WObjects;
    const
      ButtonID= 100;

    type
      TMyApp = object(TApplication)
       procedure InitMainWindow; virtual;
      end;

      PMyWindow = ^TMyWindow;
      TMyWindow = object(TWindow)
          But: PButton;
          DurationCount: integer;
        constructor Init(AParent: PWindowsObject; ATitle: PChar);
        procedure MakeNoise(var Msg: TMessage); virtual id_First + ButtonID;
        procedure WMKillFocus(var Msg: TMessage); virtual wm_First + wm_KillFocus;
      end;

    procedure TMyApp.InitMainWindow;
    begin
      MainWindow:= new(PMyWindow,init(nil,'Sound Window'));
    end;

    constructor TMyWindow.Init(AParent: PWindowsObject; ATitle: PChar);
    begin
      DurationCount:= 0;
      TWindow.Init(AParent, ATitle);
      but:= New(PButton,init(@self,ButtonId,'&Make Noise',10,10,100,50,false));
    end;

    procedure TMyWindow.MakeNoise(var Msg: TMessage);
    const
      Duration = 100;
    var
      err: integer;
      Pitch: integer;
    begin
      OpenSound;
      for Pitch:= 1 to 84 do
        begin
          SetVoiceNote(1, Pitch, 10, 1);
        end;
      StartSound;
      WaitSoundState(S_QueueEmpty);
      StopSound;
      CloseSound;
    end;

    procedure TMyWindow.WMKillFocus(var Msg: TMEssage);
    begin
      messageBeep(0);
    end;

    var
      x: TMyApp;
    begin
      x.Init('Test');
      x.Run;
      x.Done;
    end.

[Back to WIN-OS2 SWAG index] [Back to Main SWAG index] [Original]