?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, AMixer;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
ComboBox2: TComboBox;
TrackBar: TTrackBar;
CheckBox: TCheckBox;
Label1: TLabel;
Label2: TLabel;
Mixer: TAudioMixer;
Label3: TLabel;
Label4: TLabel;
procedure FormCreate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure MixerControlChange(Sender: TObject; MixerH, ID: Integer);
procedure TrackBarChange(Sender: TObject);
procedure CheckBoxClick(Sender: TObject);
private
{ Private declarations }
Setting:Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var A:Integer;
begin
If Mixer.MixerCount>0 then
begin
For A:=0 to Mixer.Destinations.Count-1 do
ComboBox1.Items.Add (Mixer.Destinations[A].Data.szName);
If ComboBox1.Items.Count>0 then
begin
ComboBox1.ItemIndex:=0;
ComboBox1Change (Self);
end;
end
else
begin
ComboBox1.OnChange:=nil;
ComboBox2.OnChange:=nil;
TrackBar.OnChange:=nil;
CheckBox.OnClick:=nil;
MessageDlg ('No mixer present in the system !',mtError,[mbOK],0);
end;
Setting:=False;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
var A:Integer;
begin
ComboBox2.Items.Clear;
ComboBox2.Items.Add (Mixer.Destinations[ComboBox1.ItemIndex].Data.szName);
For A:=0 to Mixer.Destinations[ComboBox1.ItemIndex].Connections.Count-1 do
ComboBox2.Items.Add(Mixer.Destinations[ComboBox1.ItemIndex].Connections[A].Data.szName);
If ComboBox2.Items.Count>0 then
begin
ComboBox2.ItemIndex:=0;
ComboBox2Change (Self);
end;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
var L,R,M:Integer;
VD,MD:Boolean;
begin
Mixer.GetVolume (ComboBox1.ItemIndex,ComboBox2.ItemIndex-1,L,R,M,VD,MD);
Setting:=True;
TrackBar.Enabled:=L<>-1;
Label3.Visible:=not VD;
If TrackBar.Enabled then
TrackBar.Position:=L;
CheckBox.Enabled:=M<>-1;
Label4.Visible:=not MD;
If CheckBox.Enabled then
CheckBox.Checked:=M<>0;
Setting:=False;
end;
procedure TForm1.MixerControlChange(Sender: TObject; MixerH, ID: Integer);
begin
ComboBox2Change (Self);
end;
procedure TForm1.TrackBarChange(Sender: TObject);
begin
Setting:=True;
Mixer.SetVolume (ComboBox1.ItemIndex,ComboBox2.ItemIndex-1,TrackBar.Position,-1,Integer(CheckBox.Checked));
Setting:=False;
end;
procedure TForm1.CheckBoxClick(Sender: TObject);
begin
If not Setting then
TrackBarChange (Self);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -