Показать сообщение отдельно
  #7  
Старый 26.04.2014, 14:19
Gudzik11 Gudzik11 вне форума
Начинающий
 
Регистрация: 27.09.2011
Сообщения: 158
Репутация: 10
По умолчанию

Подскажите почему пропадает звук у приложения если использовать этот модуль вот код

Код:
unit HomeUnit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, AppBar, Vcl.Menus, OptionsUnit2, System.Contnrs,
  Vcl.ComCtrls,
   Winapi.MMSystem, bass_simple ;

type
  TForm1 = class(TAppBar)
    Panel1: TPanel;
    Panel2: TPanel;
    PopupMenu1: TPopupMenu;
    mniOptions: TMenuItem;
    Timer1: TTimer;
    Timer2: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure mniOptionsClick(Sender: TObject);
    procedure Panel1Resize(Sender: TObject);
    procedure PClick(Sender: TObject);
    function IndexInParent(vControl: TControl): integer;
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }
     procedure openPanel;

  public
    { Public declarations }
    b: TbassSimple;
  end;

var
  Form1: TForm1;
  numberPages: Byte ; // номер панели
  selekt_panel: Integer ; // нажатие на панель
  focusPanel: Integer ;   // панель в фокусе
  MinForma,MaxForma : Integer ; // минемальный/максимальный размер панели

  paus: Integer ; // Пауза для закрытия
implementation

{$R *.dfm}

 procedure TForm1.openPanel;
 var
   spid : Integer ;
 begin
  if Form1.Height<=MinForma then
  begin
    //PlaySound('sound\hew\System Notifi.wav', 0, SND_ASYNC);
     b.Play('sound\GTAtitles.mp3');
    for spid := 0 to MaxForma do
   begin
    Form1.Top:=Form1.Top-1;
    Form1.Height:=Form1.Height+1;
   end;
  end;

  Form1.Panel1Resize(nil);
 end;

  // закрыть панель
 procedure closePanel;
 var
   spid : Integer ;
 begin
  if Form1.Height>=MaxForma then
  begin
  // PlaySound('sound\steam.wav', 0, SND_ASYNC);
   for spid := 0 to MaxForma do
   begin
    Form1.Top:=Form1.Top+1;
    Form1.Height:=Form1.Height-1;
   end;
  end;
 end;

{ функция, возвращающая индекс искомого компонента в
списке родителя; возвращает -1 при отсутствии компонента }
function TForm1.IndexInParent(vControl: TControl): integer;
var

ParentControl: TWinControl;
begin

 {делаем "слепок" родителя через базовой класс на предмет доступности }
 ParentControl := TForm(vControl.Parent);
 if (ParentControl <> nil) then
  begin
   for Result := 0 to ParentControl.ControlCount - 1 do
    begin
     if (ParentControl.Controls[Result] = vControl) then Exit;
    end;
  end;
 { если мы уж попали в это место, то либо не найден компонент, либо компонент не имел родителя }
 Result := -1;
end;

procedure TForm1.PClick(Sender: TObject);
var
 i,j: Integer;
begin
 focusPanel:=IndexInParent((sender as TPanel));
 for i:=0 to list.Count-1  do
 begin
  if ( TPanel(list[i]) is TPanel) then  // and (Panel4.Controls[i] <> Sender) and (Pos('Pages',TPanel(Panel4.Controls[i]).Caption) = 1)
  begin
   TPanel(list[i]).Color:=clSilver;
   (sender as TPanel).Color:= clLime;
   if i=focusPanel then
   begin
    TPanel(ListPage[i]).Visible:=True;
   end
   else
   begin
    TPanel(ListPage[i]).Visible:=False;
   end;

  end;

 end;
 openPanel;
  Timer1.Enabled:=True;
  Panel1Resize(nil);
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
 // закрыть панель
 if (Mouse.CursorPos.y<Form1.top) or (Mouse.CursorPos.y>Form1.top+Form1.Height) or (Mouse.CursorPos.x<Form1.Left) or (Mouse.CursorPos.x>Form1.Left + Form1.Width)  then
    begin
     Timer2.Enabled:=True;


      end
      else
      begin
       Timer2.Enabled:=False;
       paus:=0;
      end;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
 paus:=paus+1;
 if paus=50 then
 begin
  closePanel;
  paus:=0;
  Timer2.Enabled:=False;
  Timer1.Enabled:=False;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 MinForma:=30;
 MaxForma:=100;
 selekt_panel:=-1;
 indexsLst:=-1;
 focusPanel:=0;

 b:=TBassSimple.Create(Handle);

 Form1.Edge:= abeBottom;
 Form1.Left:=10;
 Panel1.Height:=30;
 Form1.Height:=MinForma;
 Form1.Top:=Screen.WorkAreaHeight - Form1.Height;
 Form1.Width:=Screen.WorkAreaWidth-20;

 paus:=1; // Пауза для закрытия

// waveOutSetVolume(0,100000); // громкость панельки
 end;



procedure TForm1.mniOptionsClick(Sender: TObject);
begin
 Form2.Show;
end;

procedure TForm1.Panel1Resize(Sender: TObject);
const
 Pad = 2;
var
 i,j: Integer;
begin
 Form2.ListBox1.Clear;

 if List.Count>0 then
 begin
  For i := 0 to list.Count-1 do
  begin
   TPanel(list[i]).Left:=(Panel1.Width - Pad) * i div List.Count + Pad;
   TPanel(list[i]).Top:=Pad;
   TPanel(list[i]).Height:= Panel1.Height - Pad * 2;
   TPanel(list[i]).Width:= (Panel1.Width - Pad) * (i + 1) div List.Count - TPanel(list[i]).Left;
  end;
 end;

 for j := 0 to list.Count-1 do
 begin
  Form2.ListBox1.Items.Add(TPanel(list[j]).Caption)

 end;


 Form2.ListBox1.ItemIndex:=selekt_panel;


end;

end.
Ответить с цитированием