Delphi: Свой WinAMP в подарочной упаковке
Лозовский Александр
Xakep, номер #057, стр. 057-086-5
Pars Terminalis
Если ты сделал какой-нибудь мегаподарочный интерфейс, не скрывай его от общественности. Лучше вооружись электронной почтой и пришли его мне на alexander@real.xakep.ru. Если тебе жалко исходника - пришли бинарник. На худой конец скрин в формате BMP или нерабочий интерфейс. Самые кульные творения мы выложим на xakep.ru, пусть народ смотрит и учится. Только не забудь как следует запаковать свое добро RAR'ом - пожалей мой старенький модем :). Удачного тебе музона!
Листинг procedure TForm1.FormCreate
procedure TForm1.FormCreate(Sender: TObject);
begin
if BASS_GetVersion() <> MAKELONG(1,8) then begin
ShowMessage('BASS 1.8 не загружен!');
Halt; //Никогда так не делай. Это моветон :)
end;
// Инициализируем цифровой саунд -
// дефолт девайс, 44100 Гц, стерео, 16 бит
if not BASS_Init(-1, 44100, 0, handle) then
ShowMessage('Не могу инициализировать звук!');
// Инициализируем компакт
if not BASS_CDInit(nil, BASS_DEVICE_LEAVEVOL) then
ShowMessage('Не могу инициализировать компакт!');
// звуковой выход
BASS_Start;
end;
Обработчик OnClick для RadioButton2
procedure TForm1.RadioButton2Click(Sender: TObject);
var i: integer;
begin
If BASS_CDInDrive then
begin
RadioButton1.Checked;
For i:=1 to BASS_CDGetTracks do
begin
IF BASS_CDGetTracks>=10 then ListBox1.Items.Add('Track '+Inttostr(i)) else
ListBox1.Items.Add('Track 0'+Inttostr(i));
end;
end else
begin
ShowMessage ('Нет CD в дисководе! Че играть-то?');
RadioButton1.Checked:= true;
end;
end;
Онклик для кнопки: "PAUSE":
procedure TForm1.Button3Click(Sender: TObject);
begin
IF button3.Caption= 'Pause' then
begin
IF RadioButton2.Checked then
bass_channelpause (CDCHANNEL) else
bass_channelpause (result);
Button3.Caption:= 'Resume';
end else
begin
IF RadioButton2.Checked then
bass_channelresume (CDCHANNEL) else
bass_channelresume (result);
Button3.Caption:= 'Pause';
end;
end;