Index · Правила · Поиск· Группы · Регистрация · Личные сообщения· Вход

Список разделов Компьютерный раздел
 
 
 

Раздел: Компьютерный раздел DELPHI 

Создана: 30 Марта 2007 Птн 16:34:47.
Раздел: "Компьютерный раздел"
Сообщений в теме: 85, просмотров: 14702

На страницу: Назад  1, 2, 3, 4, 5, 6  Вперёд
  1. 30 Марта 2007 Птн 16:34:47
    Все кто владеет данным языком программирования просьба откликнуться.Помогите как написать чтобы видео воспроизводилось на весь экран? И кто-нибудь писал вmp3 плеере быстрый поиск(ползунок)
  2. 02 Апреля 2007 Пон 18:02:16
    не никак не сохроняет вообще ни чё! Грустно :-( Народ ну помогите а сохранить настройки эквалайзера и с ползунком.Ползунок у меня бежит но у него не действует быстрый поиск! Грустно :-(
  3. Bodya


    Завсегдатай


    Более 10 лет на форумеМуж.
    02 Апреля 2007 Пон 18:25:49
    А как ты сохраняешь настройки? Ты хотябы код показал, ато не все ведь телепаты на этом форуме. Смайлик :-)
  4. 03 Апреля 2007 Втр 18:29:30
    я ваще настройки не разу не пробывал сохранять мне главное что он запомнил как я настроил эквалайзер!
  5. nayk


    Активист


    Более 10 лет на форумеМуж.
    04 Апреля 2007 Срд 8:11:36
    WOLF3848 писал :я ваще настройки не разу не пробывал сохранять мне главное что он запомнил как я настроил эквалайзер!


    Код:

      Equalizer.SaveToFile('eq.sav');


    А если серьезно, уточни что именно нужно сохранять: значения ползунков, полей или др. и как должно сохраняться - для каждого пользователя или для всех одинаково и пр. Ато както размыто: "сохранить эквалайзер" Wink
  6. 04 Апреля 2007 Срд 13:43:12
    блин ошибку пишет в SaveToFile? где его прописывать ещё надо? а и сохранять мне надо ещё компонент radiobutton Смайлик :-)
  7. 04 Апреля 2007 Срд 13:44:33
    а и чтоб сохранялось для отдельного пользователя и надо чтобы сохранялось ещё положенние и размер формы! Смайлик :-)
  8. 04 Апреля 2007 Срд 13:45:17
    а и чтоб сохранялось для разных пользователей и надо чтобы сохранялось ещё положенние и размер формы
  9. nayk


    Активист


    Более 10 лет на форумеМуж.
    04 Апреля 2007 Срд 14:32:24
    1) в секцию USES добавляеш Registry:
    Код:

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls, Registry;


    2) гденибудь в public прописываеш 2 процедуры:
    Код:

    public
        { Public declarations }
        procedure ReadSettings; //- чтение
        procedure WriteSettings; //- запись
    end;


    3) в секции implementation делаеш реализацию этих 2х процедур:
    Код:

    procedure TForm1.ReadSettings;
    var Reg: TRegIniFile;
    begin
      Reg:=TRegIniFile.Create('MySoft');
      try
        Reg.RootKey:=HKEY_CURRENT_USER; //- ветка для текущего юзера
        Reg.OpenKey('Software',True); //- открываем ветку
        // Читаем настройки (надеюсь тут всё понятно)
        Form1.Left:=Reg.ReadInteger('MySoft','Left',10); //- положение и размер формы
        Form1.Top:=Reg.ReadInteger('MySoft','Top',10);
        Form1.Width:=Reg.ReadInteger('MySoft','Width',300);
        Form1.Height:=Reg.ReadInteger('MySoft','Height',200);
        TrackBar1.Position:=Reg.ReadInteger('MySoft','EQ1',0); //- ползунки
        TrackBar2.Position:=Reg.ReadInteger('MySoft','EQ2',0);
        TrackBar3.Position:=Reg.ReadInteger('MySoft','EQ3',0);
        RadioButton1.Checked:=Reg.ReadBool('MySoft','RadioButton1',false); //- радиобутоны
        RadioButton2.Checked:=Reg.ReadBool('MySoft','RadioButton2',true);
      finally
        Reg.Free;
      end;
    end;

    procedure TForm1.WriteSettings;
    var Reg: TRegIniFile;
    begin
      Reg:=TRegIniFile.Create('MySoft');
      try
        Reg.RootKey:=HKEY_CURRENT_USER;
        Reg.OpenKey('Software',True);
        Reg.WriteInteger('MySoft','Left',Form1.Left);
        Reg.WriteInteger('MySoft','Top',Form1.Top);
        Reg.WriteInteger('MySoft','Width',Form1.Width);
        Reg.WriteInteger('MySoft','Height',Form1.Height);
        Reg.WriteInteger('MySoft','EQ1',TrackBar1.Position);
        Reg.WriteInteger('MySoft','EQ2',TrackBar2.Position);
        Reg.WriteInteger('MySoft','EQ3',TrackBar3.Position);
        Reg.WriteBool('MySoft','RadioButton1',RadioButton1.Checked);
        Reg.WriteBool('MySoft','RadioButton2',RadioButton2.Checked);
      finally
        Reg.Free;
      end;
    end;


    4) при создании формы вызываеш чтение настроек, при уничтожении формы запись настроек:
    Код:

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      ReadSettings;
    end;

    procedure TForm1.FormDestroy(Sender: TObject);
    begin
      WriteSettings;
    end;


    5) Запускаеш и радуешся Смайлик :-)
  10. 04 Апреля 2007 Срд 18:55:34
    Большое спсибо!!!есчо вопрос как сделать чтобы открывал готовые плей-листы(m3pu) и добавлял их в список" Very Happy
  11. 04 Апреля 2007 Срд 19:49:54
    Народ помогите! Я решил переделать свой мп3 плеер чуток мне надо чтобы при открытие файл добавился в плей-лист код при открытие у меня такой-
    [b]if dlgOpen.Execute then
    begin
    FFileName:= dlgOpen.FileName;
    if not BASS_PlaySoundFile(FFileName) then
    Error(ERR_NOT_SUPPORTED_FORMAT)
    else begin
    lbFileName_face.Caption:= ExtractFileName(FFileName);
    end;
    end;

    Что нужно добавить чтобы файл добавилсЯ в плей-лист?
  12. nayk


    Активист


    Более 10 лет на форумеМуж.
    05 Апреля 2007 Чтв 9:55:03
    чтоб открыть плейлис:
    1) на форме размещаеш к примеру ListBox для списка тэгов
    2) добавляеш в секцию USES модуль IniFiles:
    Код:

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls, Registry, IniFiles;

    3) в секцию public перед описанием процедур добавляеш переменную FilesList: TStringList (это для хранения путей к файлам) и процедуру чтения плейлиста:
    Код:

    public
        { Public declarations }
        FilesList: TStringList;
        procedure ReadPlayList(const FileName: string);
        // дальше остальные процедуры
        // ...
    end;

    4) при создании формы создаеш FilesList, при уничтожении удаляеш:
    Код:

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      // .... - тут твое
      FilesList:=TStringList.Create;
      FilesList.Clear;
      ListBox1.Items.Clear;
    end;

    procedure TForm1.FormDestroy(Sender: TObject);
    begin
       // .... - тут твое
      FilesList.Free;
    end;

    5) делаеш реализацию процедуры ReadPlayList :
    Код:

    procedure TForm1.ReadPlayList(const FileName: string);
    var IniPls: TIniFile;
        i,n,k,l: integer;
        M3UPls: TextFile;
        str, ext, tm :string;
    begin
      if FileExists(FileName) then
      // если файл существует:
      begin
        ListBox1.Items.Clear; // -зачищаем список
        FilesList.Clear;
        ext:=AnsiUpperCase(ExtractFileExt(FileName)); // -получаем расширение в верхнем регистре
        if (ext='.PLS') then
        // если это PLS, то можно работать как с INI-файлом:
        begin
          IniPls:=TIniFile.Create(FileName);
          try
            // читаем количество файлов:
            n:=IniPls.ReadInteger('Playlist','NumberOfEntries',0);
            if n > 0 then // -если список не пустой
            for i:=1 to n do // -читаем файлы поочереди:
            begin
              // считываем путь к файлу:
              str:=IniPls.ReadString('Playlist','File'+IntToStr(i),'error file');
              k:=FilesList.Add(str); // -добавляем файл в список
              // читаем время в секундах:
              l:=IniPls.ReadInteger('Playlist','Length'+IntToStr(i),0);
              // переводим в минуты:
              tm:=IntToStr( l-60*Trunc(l/60) );
              if Length(tm)<2 then tm:='0'+tm;
              tm:=IntToStr( Trunc(l/60) )+':'+tm;
              // читаем заголовок:
              str:=IniPls.ReadString('Playlist','Title'+IntToStr(i),'');
              if (str = '') then
              // если нет заголовка, записываем имя файла:
              ListBox1.Items.Add(ExtractFileName(FilesList.Strings[k])+'  ['+tm+']') else
              // иначе записываем заголовок :
              ListBox1.Items.Add(str+'  ['+tm+']');
            end;
          finally
            IniPls.Free;
          end;
        end else
        if (ext='.M3U') then
        // если M3U, то работаем как с текстовым файлом:
        begin
          AssignFile(M3UPls,FileName);
          Reset(M3UPls); // - открываем файл
          Readln(M3UPls,str);
          if (UpperCase(str)='#EXTM3U') then
          while (not eof(M3UPls)) do
          begin
            Readln(M3UPls,str);
            if (UpperCase(Copy(str,1,8))='#EXTINF:') then
            begin
              n:=Pos(',',str);
              // читаем время:
              l:=StrToInt( Trim(Copy(str,9, n-9)) );
              // переводим в минуты:
              tm:=IntToStr( l-60*Trunc(l/60) );
              if Length(tm)<2 then tm:='0'+tm;
              tm:=IntToStr( Trunc(l/60) )+':'+tm;
              // получаем заголовок:
              Delete(str,1,n);
              ListBox1.Items.Add(str+'  ['+tm+']');
              // читаем имя файла:
              if not eof(M3UPls) then
              begin
                Readln(M3UPls,str);
                FilesList.Add(str);
              end;
            end else
            begin
              FilesList.Add(str);
              ListBox1.Items.Add(ExtractFileName(str));
            end;
          end;
          CloseFile(M3UPls);
        end;
      end else
      // если файла нет, выдаем сообщение:
      MessageDlg('Файл "'+FileName+'" не найден.', mtError, [mbOK],0);
    end;

    6) при запуске диалога открытия файла вызываеш процедуру:
    Код:

    ...
    if OpenDialog1.Execute then
      ReadPlayList(OpenDialog1.FileName);
    ...


    пояснения:
    для каждого тэга из списка ListBox1 ставится в соответствие путь к файлу в FilesList. при выборе трека в ListBox1 нужно открывать файл из FilesList под тем же номером. Если будеш делать сортировку учитывай порядок в обоих списках. Это самый простой способ есть и другие.

    п.с. WOLF3848, может всётаки сначала научиться работать с файлами и реестром, а потом браться за написание плееров и пр. серьезных программ. (это только совет) Wink
  13. Bodya


    Завсегдатай


    Более 10 лет на форумеМуж.
    05 Апреля 2007 Чтв 10:09:48
    2 WOLF3848 Незабудь в разделе "О программе" упомянуть имя nayk Гы-гы-гы
  14. 05 Апреля 2007 Чтв 13:45:59
    ща буду пробывать!
  15. 05 Апреля 2007 Чтв 14:21:45
    Блин!Ошибку пишет я когда прогу уже запустил всё жму отурыть -выбираю файл а он мне пишет-EACCESSVIOLATION AT ADDRESS 00462f5e in module 'player.exe' И ета отшибка стала появляться когда я добавил :

    procedure TfrmMain.btnOpenClick(Sender: TObject);
    begin
    if dlgOpen.Execute then
    ReadPlayList(dlgopen.FileName);
    end;

    (ето когда я жму на-открыть)
  16. 05 Апреля 2007 Чтв 14:25:08
    О всё нашёл проблему чтоб ошибки не было но тока файл в список не добавляет Грустно :-(
    я убрал в

    procedure TFrmmain.ReadPlayList(const FileName: string);
    ....
    FilesList.Clear;(вот ету процедуру я убрал и стало без ошибки ну тока файл не добавляет!)
На страницу: Назад  1, 2, 3, 4, 5, 6  Вперёд