Добавляемые строки выделены красным цветом.




uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls, Bass, inifiles;

в разделе Var объявим переменную:
IniFile: TIniFile;

var
Form_player: TForm_player;
i:integer; //номер проигрываемой песни в playlist
filename: string;//имя файла
Channel: DWORD;//
Mode: TPlayerMode;//PlayMode
//переменные для настройки эквалайзера
p: BASS_DX8_PARAMEQ;
fx: array[1..10] of integer;
//переменные визуализации
FFTPeacks: array [0..128] of Integer;
FFTFallOff: array [0..128] of Integer;
//переменная файла конфигурации
IniFile: TIniFile;

В инспекторе объектов для формы свойство AutoSize установим True.

А в событии OnCreate формы добавим строки:

var n,count:integer;

в теле процедуры:

//создание inifile с именем Config.ini
IniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Config.ini');
//загрузка настроек из inifile
//положение формы и размер
form_player.Left:=IniFile.ReadInteger('Form info','Left',285);
form_player.Top:=IniFile.ReadInteger('Form info','Top',168);
form_player.Width:=IniFile.ReadInteger('Form info','Width',520);
form_player.Height:=IniFile.ReadInteger('Form info','Height',501);
//громкость звука
trackbar1.position:=IniFile.ReadInteger('Volue','trackbar1.position',5);
//настройки эквалайзера
trackbar3.position:=IniFile.ReadInteger('EQLayzer','trackbar3.position',15);
trackbar4.position:=IniFile.ReadInteger('EQLayzer','trackbar4.position',15);
trackbar5.position:=IniFile.ReadInteger('EQLayzer','trackbar5.position',15);
trackbar6.position:=IniFile.ReadInteger('EQLayzer','trackbar6.position',15);
trackbar7.position:=IniFile.ReadInteger('EQLayzer','trackbar7.position',15);
trackbar8.position:=IniFile.ReadInteger('EQLayzer','trackbar8.position',15);
trackbar9.position:=IniFile.ReadInteger('EQLayzer','trackbar9.position',15);
trackbar10.position:=IniFile.ReadInteger('EQLayzer','trackbar10.position',15);
trackbar11.position:=IniFile.ReadInteger('EQLayzer','trackbar11.position',15);
trackbar12.position:=IniFile.ReadInteger('EQLayzer','trackbar12.position',15);
//количество записей в плейлисте
Count:=IniFile.ReadInteger('ItemsCount','Count',0);
//загрузка плейлиста
if Count<>0 then
begin
for n:= 0 to Count - 1 do
ListBox1.Items.Add(IniFile.ReadString('PlayList', 'file' + IntToStr(n+1),'Ошибка чтения'));
//установка на первую запись плейлиста
Filename:=ListBox1.Items.Strings[0];
ListBox1.ItemIndex:=0;
end;

 

procedure TForm_player.FormCreate(Sender: TObject);
var n, count:integer;
begin
//установка громкости
trackbar1.Min:=0;
trackbar1.Max:=10;
trackbar1.Position:=5;
//установка баланса
trackbar2.Min:=-5;
trackbar2.Max:=5;
trackbar2.Position:=0;

// проверка корректности загруженной BASS.DLL
if (HIWORD(BASS_GetVersion) <> BASSVERSION) then
begin
MessageBox(0,'Не корректная версия BASS.DLL',nil,MB_ICONERROR);
Halt;
end;

// Инициализация аудио - по умолчанию, 44100hz, stereo, 16 bits
if not BASS_Init(-1, 44100, 0, Handle, nil) then
begin
MessageBox(0,'Ошибка инициализация аудио',nil,MB_ICONERROR);
Halt;
end;

//создание inifile с именем Config.ini
IniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Config.ini');
//загрузка настроек из inifile
//положение формы и размер
form_player.Left:=IniFile.ReadInteger('Form info','Left',285);
form_player.Top:=IniFile.ReadInteger('Form info','Top',168);
form_player.Width:=IniFile.ReadInteger('Form info','Width',520);
form_player.Height:=IniFile.ReadInteger('Form info','Height',501);
//громкость звука
trackbar1.position:=IniFile.ReadInteger('Volue','trackbar1.position',5);
//настройки эквалайзера
trackbar3.position:=IniFile.ReadInteger('EQLayzer','trackbar3.position',15);
trackbar4.position:=IniFile.ReadInteger('EQLayzer','trackbar4.position',15);
trackbar5.position:=IniFile.ReadInteger('EQLayzer','trackbar5.position',15);
trackbar6.position:=IniFile.ReadInteger('EQLayzer','trackbar6.position',15);
trackbar7.position:=IniFile.ReadInteger('EQLayzer','trackbar7.position',15);
trackbar8.position:=IniFile.ReadInteger('EQLayzer','trackbar8.position',15);
trackbar9.position:=IniFile.ReadInteger('EQLayzer','trackbar9.position',15);
trackbar10.position:=IniFile.ReadInteger('EQLayzer','trackbar10.position',15);
trackbar11.position:=IniFile.ReadInteger('EQLayzer','trackbar11.position',15);
trackbar12.position:=IniFile.ReadInteger('EQLayzer','trackbar12.position',15);
//количество записей в плейлисте
Count:=IniFile.ReadInteger('ItemsCount','Count',0);
//загрузка плейлиста
if Count<>0 then
begin
for n:= 0 to Count - 1 do
ListBox1.Items.Add(IniFile.ReadString('PlayList', 'file' + IntToStr(n+1),'Ошибка чтения'));
//установка на первую запись плейлиста
Filename:=ListBox1.Items.Strings[0];
ListBox1.ItemIndex:=0;
end;
end;

Для события OnClose формы добавим следующий код:

var n:integer;

в теле процедуры

//сохраняем настройки в inifile
//форма
IniFile.WriteInteger('Form info','Left',Left);
IniFile.WriteInteger('Form info','Top',Top);
IniFile.WriteInteger('Form info','Width',Width);
IniFile.WriteInteger('Form info','Height',Height);
//громкость звука
IniFile.WriteInteger('Volue','trackbar1.position',trackbar1.position);
//эквалайзер
IniFile.WriteInteger('EQLayzer','trackbar3.position',trackbar3.position);
IniFile.WriteInteger('EQLayzer','trackbar4.position',trackbar4.position);
IniFile.WriteInteger('EQLayzer','trackbar5.position',trackbar5.position);
IniFile.WriteInteger('EQLayzer','trackbar6.position',trackbar6.position);
IniFile.WriteInteger('EQLayzer','trackbar7.position',trackbar7.position);
IniFile.WriteInteger('EQLayzer','trackbar8.position',trackbar8.position);
IniFile.WriteInteger('EQLayzer','trackbar9.position',trackbar9.position);
IniFile.WriteInteger('EQLayzer','trackbar10.position',trackbar10.position);
IniFile.WriteInteger('EQLayzer','trackbar11.position',trackbar11.position);
IniFile.WriteInteger('EQLayzer','trackbar12.position',trackbar12.position);
//количество файлов в PlayList
IniFile.WriteInteger('ItemsCount','Count',ListBox1.Items.Count);
//очистка секции PlayList
IniFile.EraseSection('PlayList');
//выгрузка из PlayList
for n:= 0 to ListBox1.Items.Count - 1 do
IniFile.WriteString('PlayList', 'file' + IntToStr(n+1), ListBox1.Items.Strings[n]);
//Время создания PlayList
IniFile.WriteTime('Time','Write time',Time);
//Освобождаем объекты перед закрытием
IniFile.Free;

procedure TForm_player.FormClose(Sender: TObject; var Action: TCloseAction);
var n:integer;
begin
//сохраняем настройки в inifile
//форма
IniFile.WriteInteger('Form info','Left',Left);
IniFile.WriteInteger('Form info','Top',Top);
IniFile.WriteInteger('Form info','Width',Width);
IniFile.WriteInteger('Form info','Height',Height);
//громкость звука
IniFile.WriteInteger('Volue','trackbar1.position',trackbar1.position);
//эквалайзер
IniFile.WriteInteger('EQLayzer','trackbar3.position',trackbar3.position);
IniFile.WriteInteger('EQLayzer','trackbar4.position',trackbar4.position);
IniFile.WriteInteger('EQLayzer','trackbar5.position',trackbar5.position);
IniFile.WriteInteger('EQLayzer','trackbar6.position',trackbar6.position);
IniFile.WriteInteger('EQLayzer','trackbar7.position',trackbar7.position);
IniFile.WriteInteger('EQLayzer','trackbar8.position',trackbar8.position);
IniFile.WriteInteger('EQLayzer','trackbar9.position',trackbar9.position);
IniFile.WriteInteger('EQLayzer','trackbar10.position',trackbar10.position);
IniFile.WriteInteger('EQLayzer','trackbar11.position',trackbar11.position);
IniFile.WriteInteger('EQLayzer','trackbar12.position',trackbar12.position);
//количество файлов в PlayList
IniFile.WriteInteger('ItemsCount','Count',ListBox1.Items.Count);
//очистка секции PlayList
IniFile.EraseSection('PlayList');
//выгрузка из PlayList
for n:= 0 to ListBox1.Items.Count - 1 do
IniFile.WriteString('PlayList', 'file' + IntToStr(n+1), ListBox1.Items.Strings[n]);
//Время создания PlayList
IniFile.WriteTime('Time','Write time',Time);
//Освобождаем объекты перед закрытием
IniFile.Free;
Bass_Stop();
BASS_StreamFree(channel);
Bass_Free;
end;

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-21 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: