⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 AVS生成工具
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
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 + -