// GKO-03 Demo 4 tehtävä 1-2 // Samuli Saarinen & Teemu Siikaniemi unit Teht1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MPlayer, StdCtrls; type TFormWassup = class(TForm) MediaPlayerWav: TMediaPlayer; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure MediaPlayerWavNotify(Sender: TObject); private { Private declarations } public { Public declarations } end; var FormWassup: TFormWassup; implementation {$R *.dfm} procedure TFormWassup.FormCreate(Sender: TObject); begin Try MediaPlayerWav.Open; // MediaPlayerWav.Play; Except On EMCIDeviceError do ; end; end; procedure TFormWassup.FormClose(Sender: TObject; var Action: TCloseAction); begin (* MediaPlayerWav.FileName := 'exit.wav'; try MediaPlayerWav.Open; MediaPlayerWav.Wait := true; // ei hirveän hyvä tämäkään MediaPlayerWav.Play; except on EMCIDeviceError do; end; *) // Sleep(3000); // Huono! end; const loppuaani = 'exit.wav'; procedure TFormWassup.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if ( MediaPlayerWav.FileName = loppuaani ) then exit; MediaPlayerWav.FileName := loppuaani; try MediaPlayerWav.OnNotify := MediaPlayerWavNotify; MediaPlayerWav.Open; MediaPlayerWav.Play; except on EMCIDeviceError do; end; CanClose := false; end; procedure TFormWassup.MediaPlayerWavNotify(Sender: TObject); begin Close; end; end.