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

📄 unit2.pas

📁 刻录机源码
💻 PAS
字号:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, mbDrvLib, ComCtrls, mbISOLib, IniFiles;

type
  TfrmSettings = class(TForm)
    Label1: TLabel;
    eVolLabel: TEdit;
    cJoliet: TCheckBox;
    Button1: TButton;
    Button2: TButton;
    cCloseDisc: TCheckBox;
    cUnderrunProtection: TCheckBox;
    cTestWrite: TCheckBox;
    cEject: TCheckBox;
    cImportSession: TCheckBox;
    eSession: TEdit;
    cOPC: TCheckBox;
    sCacheSize: TTrackBar;
    Label3: TLabel;
    Label4: TLabel;
    cQuickSaveISO: TCheckBox;
    cBootable: TCheckBox;
    Label2: TLabel;
    dlg: TOpenDialog;
    cShowFiles: TCheckBox;
    cArchiveOnly: TCheckBox;
    CheckBox1: TCheckBox;
    Button3: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure cImportSessionClick(Sender: TObject);
    procedure sCacheSizeChange(Sender: TObject);
    procedure cBootableClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmSettings: TfrmSettings;
  oArchiveFiles, oImportSession: Boolean;
implementation

uses unit1;

{$R *.DFM}
procedure TfrmSettings.FormShow(Sender: TObject);
begin
  cJoliet.Checked := Form1.mcdb.JolietFileSystem;
  cQuickSaveISO.Checked := QuickSaveISO;
  cCloseDisc.Checked := Form1.mcdb.FinalizeDisc;
  eVolLabel.Text := Form1.mcdb.IdVolume;
  cTestWrite.Checked := Form1.mcdb.TestWrite;
  cOPC.Checked := Form1.mcdb.PerformOPC;
  cBootable.Checked := Form1.mcdb.Bootable;
  Label2.Caption := Form1.mcdb.BootImage;
  eSession.Text := IntToStr(SessionToImport);
  cArchiveOnly.Checked := oArchiveFiles;

  cUnderrunProtection.Checked := Form1.mcdb.UnderrunProtection;
  cUnderrunProtection.Enabled := dcUnderrunProtection in Form1.mcdb.DeviceCapabilities;
  sCacheSize.Position := Form1.mcdb.CacheSize div 1024 div 1024;
end;

procedure TfrmSettings.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmSettings.Button1Click(Sender: TObject);
var
  ini: TIniFile;
begin
  Form1.mcdb.JolietFileSystem := cJoliet.Checked;
  Form1.mcdb.IdVolume := eVolLabel.Text;
  Form1.mcdb.FinalizeDisc := cCloseDisc.Checked;
  Form1.mcdb.UnderrunProtection := cUnderrunProtection.Checked;
  Form1.mcdb.TestWrite := cTestWrite.Checked;
  Form1.mcdb.PerformOPC := cOPC.Checked;
  Form1.mcdb.CacheSize := sCacheSize.Position * 1024 * 1024;
  Form1.mcdb.Bootable := cBootable.Checked;
  Form1.mcdb.BootImage := Label2.Caption;
  oArchiveFiles := cArchiveOnly.Checked;
  ccEject := cEject.Checked;
  ccShowFiles := cShowFiles.Checked;
  ccImportSession := cImportSession.Checked;

  if cImportSession.Checked and (trim(eSession.Text) <> '') and (StrToInt(eSession.Text) = 0) then
    ShowMessage('Session to import; Zero means not to import any session');
  if cImportSession.Checked then
    SessionToImport := StrToInt(eSession.Text)
  else
    SessionToImport := 0;
  QuickSaveISO := cQuickSaveISO.Checked;
  oArchiveFiles := cArchiveOnly.Checked;
  ini := TIniFile.Create('MCDB.ini');
  ini.WriteBool('Options', 'ArchiveFiles', cArchiveOnly.Checked);
  ini.WriteBool('Options', 'ImportSession', oImportSession);
  ini.WriteBool('Options', 'SavePath', Form1.cPathInfo.Checked);
  ini.WriteBool('Options', 'CloseDisc', Form1.mcdb.FinalizeDisc);
  ini.WriteBool('Options', 'EjectDisc', cEject.Checked);
  ini.WriteBool('Options', 'JolietFS', cJoliet.Checked);
  ini.WriteBool('Options', 'Bootable', cBootable.Checked);
  ini.WriteBool('Options', 'TestWrite', cTestWrite.Checked);
  ini.WriteBool('Options', 'QuickSaveISO', cQuickSaveISO.Checked);
  ini.WriteBool('Options', 'ShowFiles', cShowFiles.Checked);
  ini.WriteBool('Options', 'PerformOPC', cOPC.Checked);
  ini.WriteString('Options', 'SessionNo', eSession.Text);
  ini.WriteBool('Options', 'ImportSession', cImportSession.Checked);
  ini.WriteString('Options', 'BootImage', Label2.Caption);
  ini.WriteString('Options', 'VolumeLable', eVolLabel.Text);
  ini.WriteInteger('Options', 'CacheSize', Form1.mcdb.CacheSize);

  ini.Free;
  Close;
end;

procedure TfrmSettings.cImportSessionClick(Sender: TObject);
begin
  eSession.Enabled := cImportSession.Checked;  
end;

procedure TfrmSettings.sCacheSizeChange(Sender: TObject);
begin
  Label3.caption := IntToDec(sCacheSize.Position, 2, ' ')+' MB'; 
end;

procedure TfrmSettings.cBootableClick(Sender: TObject);
begin
  if cBootable.Checked then
  begin
    dlg.FileName := Label2.Caption;
    if dlg.Execute then
    begin
      Label2.Caption := dlg.FileName;
    end
    else
    begin
      cBootable.Checked := False;
    end;
  end

end;

procedure TfrmSettings.Button3Click(Sender: TObject);
begin
  Form1.mcdb.CloseTrack(False, False);
end;

procedure TfrmSettings.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -