Рекомендуемый вид диалогового окна программы приведен на рис. 1.46.

Рис. 1.46. Окно программы Звуки Windows

unit WinSound_;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, MPlayer, ExtCtrls;
type
TForml = class(TForm)
MediaPlayerl: TMediaPlayer;
ListBoxl: TListBox; // список WAV-файлов
Label2: TLabel;
Label1: TLabel; // выбранный из списка файл
procedure ListBoxlClick(Sender: TObject);
procedure MediaPlayerlClick(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
( Public declarations }
end;
var
Forml: TForml;
implementation
{$R *.D™}
var
SOUNDPATH: string[80];
{ Определяет каталог Windows и формирует
список WAV-файлов, находящихся в
подкаталоге Media }
procedure TForml.FormCreate(Sender: TObject);
var
lpBuf: PChar; // указатель на nul-terminated-строку
sWinDir: string[128]; // обычная Паскаль-строка
SearchRec: TSearchRec; // структура SearchRec содержит
// информацию о файле, удовлетворяющем условию поиска
begin
// определить положение каталога Media
GetMera(lpBuf,MAX_PATH); // выделить память для строки
GetWindowsDirectory (lpBuf ,МАХ_РАТН) ; // получить каталог Windows
sWinDir:=lpbuf; // скопировать nt-строку в р-строку
SOUNDPATH:=sWinDir+'\Media\'; // вывести результат
FreeMem(lpBuf); // освободить память
// сформировать список WAV-файлов
if FindFirst(SOUNDPATH+'*.wav', faAnyFile, SearchRec) =0 then
begin
// в каталоге есть файл с расширением wav
// добавим имя этого файла в список
Forml.ListBoxl.Items.Add(SearchRec.Name);
// пока в каталоге есть другие файлы с расширением wav
while (FindNext(SearchRec) = 0) do
Forml.ListBoxl.Items.Add(SearchRec.Name);
end;
end;
// щелчок на элементе списка
procedure TForml.ListBoxlClick(Sender: TObject);
begin
// вывести в поле метки Label2 имя выбранного файла
Label2.Caption:=ListBoxl.Items[ListBoxl.itemlndex];
end;
// щелчок на кнопке компонента MediaPlayer
procedure TForml.MediaPlayerlClick(Sender: TObject;
Button: TMPBtnType;
var DoDefault: Boolean);
begin
if (Button = btPlay) and (Label2.Caption О ••) then
begin
// нажата кнопка Play
with MediaPlayerl do
begin
FileName:=S0UNDPATH+Label2.Caption; // имя выбранного
// файла
Open;
// Wait:- True;
end;
end;
end;
end.