📄 unit2.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 + -