📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TMainForm = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
CheckBox7: TCheckBox;
CheckBox8: TCheckBox;
CheckBox9: TCheckBox;
CheckBox10: TCheckBox;
CheckBox11: TCheckBox;
CheckBox12: TCheckBox;
CheckBox13: TCheckBox;
CheckBox14: TCheckBox;
CheckBox15: TCheckBox;
CheckBox16: TCheckBox;
CheckBox17: TCheckBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button4: TButton;
Edit4: TEdit;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
ComboBox4: TComboBox;
ComboBox5: TComboBox;
ComboBox6: TComboBox;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
OpenDialog1: TOpenDialog;
OpenDialog2: TOpenDialog;
BitBtn1: TBitBtn;
OpenDialog4: TOpenDialog;
OpenDialog3: TOpenDialog;
GroupBox4: TGroupBox;
RadioButton4: TRadioButton;
RadioButton3: TRadioButton;
ComboBox9: TComboBox;
ComboBox8: TComboBox;
ComboBox7: TComboBox;
ComboBox10: TComboBox;
CheckBox26: TCheckBox;
CheckBox25: TCheckBox;
CheckBox24: TCheckBox;
CheckBox23: TCheckBox;
CheckBox22: TCheckBox;
CheckBox21: TCheckBox;
CheckBox20: TCheckBox;
CheckBox19: TCheckBox;
CheckBox18: TCheckBox;
CheckBox27: TCheckBox;
CheckBox28: TCheckBox;
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox4Click(Sender: TObject);
procedure ComboBox1Select(Sender: TObject);
procedure CheckBox9Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox4Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure CheckBox5Click(Sender: TObject);
procedure CheckBox6Click(Sender: TObject);
procedure CheckBox7Click(Sender: TObject);
procedure CheckBox10Click(Sender: TObject);
procedure CheckBox11Click(Sender: TObject);
procedure CheckBox12Click(Sender: TObject);
procedure CheckBox13Click(Sender: TObject);
procedure CheckBox14Click(Sender: TObject);
procedure CheckBox15Click(Sender: TObject);
procedure CheckBox16Click(Sender: TObject);
procedure CheckBox8Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure CheckBox18Click(Sender: TObject);
procedure CheckBox19Click(Sender: TObject);
procedure CheckBox20Click(Sender: TObject);
procedure CheckBox21Click(Sender: TObject);
procedure CheckBox22Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure CheckBox28Click(Sender: TObject);
private
{ Private declarations }
public
procedure dropfiles(var message:tmessage);message wm_dropfiles;
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
uses shellapi,Unit2;
{$R *.dfm}
function GetSysDir:String;
var
Buf:array[0..MAX_PATH] of Char;
begin
FillChar(Buf,SizeOf(Buf),0);
GetSystemDirectory(Buf, SizeOf(Buf));
Result:=Buf;
end;
procedure TMainForm.CheckBox2Click(Sender: TObject);
begin
if checkbox2.Checked = false then
begin
button2.Enabled := false;
edit2.Enabled := false;
combobox4.Enabled :=false;
edit2.Color :=cl3dlight;
end
else
begin
button2.Enabled := true;
edit2.Enabled := true;
combobox4.Enabled :=true;
edit2.Color :=clwindow;
end;
end;
procedure TMainForm.CheckBox4Click(Sender: TObject);
begin
if checkbox4.Checked = false then
begin
button3.Enabled := false;
edit3.Enabled := false;
edit3.Color :=cl3dlight;
checkbox17.Enabled :=false;
end
else
begin
button3.Enabled := true;
edit3.Enabled := true;
edit3.Color :=clwindow;
checkbox17.Enabled :=true;
end;
end;
procedure TMainForm.ComboBox1Select(Sender: TObject);
begin
if combobox1.Text='AVISource' then
begin
combobox3.Items.Clear ;
combobox3.Items.Add('其他参数');
combobox3.Items.Add('pixel_type="YV12"');
combobox3.Items.Add('pixel_type="YUY2"');
combobox3.Items.Add('pixel_type="RGB32"');
combobox3.Items.Add('pixel_type="RGB24"');
combobox3.ItemIndex := 0;
opendialog1.Filter :='AVI(.avi)|*.avi';
end;
if combobox1.Text='DirectShowSource' then
begin
combobox2.Enabled :=true;
combobox2.Color :=clwindow;
combobox3.Items.Clear ;
combobox3.Items.Add('其他参数');
combobox3.Items.Add('convertfps=true');
combobox3.ItemIndex := 0;
opendialog1.Filter :='视频文件|*.avi|音频文件|*.mp3|*.*|*.*';
end
else
begin
combobox2.Enabled :=false;
combobox2.Color :=cl3dlight;
end;
if combobox1.Text='Mpeg2Source' then
begin
checkbox1.Enabled:=false ;
combobox3.Items.Clear ;
combobox3.Items.Add('其他参数');
combobox3.Items.Add('32 bit MMX[Pentium]');
combobox3.Items.Add('32 bit SSEMMX(K7 P3)');
combobox3.Items.Add('64 bit FPU');
combobox3.Items.Add('64 bit IEEE-1180');
combobox3.Items.Add('32 bit SSE2[for P4]');
combobox3.Items.Add('Skal‘s SSEMMX iDCT');
combobox3.Items.Add('SimpleiDCT');
combobox3.ItemIndex := 0;
opendialog1.Filter :='D2V|*.d2v|*.*|*.*';
end
else
checkbox1.Enabled :=true;
end;
procedure TMainForm.CheckBox9Click(Sender: TObject);
begin
if checkbox9.Checked = true then
begin
combobox6.Enabled := true;
combobox6.Color :=clwindow;
end
else
begin
combobox6.Enabled := false;
combobox6.Color :=cl3dlight;
end;
end;
procedure TMainForm.Button1Click(Sender: TObject);
begin
opendialog1.Execute;
edit1.text:=opendialog1.FileName;
end;
procedure TMainForm.ComboBox4Change(Sender: TObject);
begin
if combobox4.Text='WAVSource' then
begin
opendialog2.Filter :='WAV|*.wav|*.*|*.*';
checkbox3.Enabled :=false;
end
else
begin
opendialog2.Filter :='视频文件|*.avi|音频文件|*.mp3|*.*|*.*';
checkbox3.Enabled :=true;
end;
end;
procedure TMainForm.Button2Click(Sender: TObject);
begin
if length(edit1.Text)>0 then Chdir(ExtractFilePath(edit1.Text));
opendialog2.Execute;
edit2.text:=opendialog2.FileName;
end;
procedure TMainForm.Button3Click(Sender: TObject);
begin
if length(edit1.Text)>0 then Chdir(ExtractFilePath(edit1.Text));
opendialog3.Execute;
edit3.text:=opendialog3.FileName;
end;
procedure TMainForm.Button5Click(Sender: TObject);
var
Files:TextFile;
video:array[0..4] of string;
audio:array[0..2] of string;
sub:array[0..2] of string;
begin
//===========================视频判断开始======================
if checkbox1.Checked = true then
video[3]:=',audio=false'
else
video[3]:='';
if combobox1.Text='AVISource' then video[1]:='AVISource("';
if combobox1.Text='DirectShowSource' then video[1]:='DirectShowSource("';
if combobox1.Text='Mpeg2Source' then
begin
video[1]:='Mpeg2Source("';
video[3]:=''; //不允许 Mpeg2Source模式下禁止音频
end;
if combobox2.Enabled = true then
begin
if combobox2.Text='FPS' then
video[2]:=
else
video[2]:='",'+combobox2.Text;
end
else
video[2]:='"';
if combobox3.Text = '其他参数' then
video[4]:=')'
else
video[4]:=','+combobox3.Text+')';
video[0]:=video[1]+edit1.text+video[2]+video[3]+video[4];
//===========================视频判断结束======================
//===========================音频判断开始======================
if checkbox3.Checked = true then
audio[2]:='",video=false))'
else
audio[2]:='"))';
if combobox4.Text='WAVSource' then
begin
audio[1]:='AudioDub(WAVSource("';
audio[2]:='"))'; //不允许 WAVSource模式下禁止视频
end
else
audio[1]:='AudioDub(DirectShowSource("';
audio[0]:= audio[1]+edit2.text+audio[2];
//===========================音频判断结束======================
//=========================输入输出判断开始====================
if (edit1.Text='') or (edit4.Text='') then
showmessage('输入、输出两项的内容不能为空,请填入内容!')
else
begin
//=========================输入输出判断结束====================
//===========================文件建立开始======================
Chdir(ExtractFilePath(edit1.Text));
AssignFile(Files, ChangeFileExt(edit1.Text,'.avs'));
Rewrite(Files);
if checkbox6.Checked =true then Writeln(Files,'LoadPlugin("'+ExtractFilePath(Application.Exename)+'FluxSmooth.dll")');
//===========================字幕判断开始======================
if checkbox4.Checked =true then
begin
sub[0]:='LoadPlugin("'+GetSysDir+'\VSFilter.dll")';
sub[1]:='TextSub("'+edit3.text+'")';
Writeln(Files,sub[0]);
end;
//===========================字幕判断结束======================
//===========================滤镜判断开始======================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -