📄 guimixerline.pas
字号:
unit guiMixerLine;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, WaveMixer, StdCtrls, ComCtrls;
type
TfrmMixerLine = class(TForm)
pnlName: TPanel;
trbVolume: TTrackBar;
pnlBottum: TPanel;
cbxMute: TCheckBox;
cbxSelect: TCheckBox;
lblName: TLabel;
procedure cbxSelectClick(Sender: TObject);
procedure cbxMuteClick(Sender: TObject);
procedure trbVolumeChange(Sender: TObject);
private
FMixerLine:TAudioMixerLine;
FSelectEnabled:boolean;
FSelecting:boolean;
public
constructor CreateLine(
AOwner:TComponent; AParent:TWinControl; MixerLine:TAudioMixerLine;
Master,SelectEnabled:boolean
);
procedure UpdateLine;
end;
implementation
{$R *.dfm}
constructor TfrmMixerLine.CreateLine(
AOwner:TComponent; AParent:TWinControl; MixerLine:TAudioMixerLine;
Master,SelectEnabled:boolean
);
begin
Inherited Create(AOwner);
Parent := AParent;
FMixerLine := MixerLine;
FSelectEnabled := SelectEnabled;
FSelecting := False;
if Master then
lblName.Caption := 'Master ' + FMixerLine.Name
else
lblName.Caption := FMixerLine.Name;
if mcVolume in FMixerLine.AvailableControls then
trbVolume.Visible := True;
if mcMute in FMixerLine.AvailableControls then
cbxMute.Visible := True;
if FSelectEnabled then
cbxSelect.Visible := True;
end;
procedure TfrmMixerLine.UpdateLine;
begin
if mcVolume in FMixerLine.AvailableControls then
trbVolume.Position := 100 - FMixerLine.Volume;
if mcMute in FMixerLine.AvailableControls then
cbxMute.Checked := FMixerLine.Mute;
if FSelectEnabled then
begin
FSelecting := True;
cbxSelect.Checked :=
FMixerLine.Mixer.Master.SelectedLine = FMixerLine.ID;
FSelecting := False;
end;
end;
procedure TfrmMixerLine.trbVolumeChange(Sender: TObject);
begin
FMixerLine.Volume := 100 - trbVolume.Position;
end;
procedure TfrmMixerLine.cbxMuteClick(Sender: TObject);
begin
if cbxMute.Checked <> FMixerLine.Mute then
FMixerLine.Mute := cbxMute.Checked;
end;
procedure TfrmMixerLine.cbxSelectClick(Sender: TObject);
begin
if FSelecting then
exit;
FMixerLine.Mixer.Master.SelectedLine := FMixerLine.ID;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -