📄 cmosbackupfrm.pas
字号:
unit CMOSBackupFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TBackupCMOSData = record
FileName: string;
DataSize: Integer;
end;
TBackupCMOSForm = class(TForm)
SaveDialog: TSaveDialog;
OkButton: TButton;
CanclButton: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
FileNameEdit: TEdit;
BrowseButton: TButton;
Label2: TLabel;
DataSizeComboBox: TComboBox;
procedure OkButtonClick(Sender: TObject);
procedure CanclButtonClick(Sender: TObject);
procedure BrowseButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
function CheckValid: Boolean;
procedure BackupCMOS(Value: TBackupCMOSData);
public
{ Public declarations }
procedure GetData(var Value: TBackupCMOSData);
end;
var
BackupCMOSForm: TBackupCMOSForm;
procedure ShowBackupCMOSForm;
implementation
{$R *.DFM}
uses
Misc, CMOSTool;
procedure ShowBackupCMOSForm;
var
Frm: TBackupCMOSForm;
begin
Frm := TBackupCMOSForm.Create(Application);
Frm.ShowModal;
Frm.Free;
end;
procedure TBackupCMOSForm.GetData(var Value: TBackupCMOSData);
begin
Value.FileName := FileNameEdit.Text;
Value.DataSize := StrToIntDef(DataSizeComboBox.Text, CMOS_DEFAULT_DATASIZE);
end;
function TBackupCMOSForm.CheckValid: Boolean;
begin
Result := True;
if FileNameEdit.Text = '' then
begin
Result := False;
FileNameEdit.SetFocus;
Exit;
end;
if not IsInt(DataSizeComboBox.Text) then
begin
Result := False;
DataSizeComboBox.SetFocus;
Exit;
end;
end;
procedure TBackupCMOSForm.BackupCMOS(Value: TBackupCMOSData);
var
CMOS: TCMOSTool;
P: TMemoryStream;
begin
CMOS := TCMOSTool.Create(Value.DataSize);
P := TMemoryStream.Create;
try
CMOS.GetCMOSData(P);
P.SaveToFile(Value.FileName);
finally
CMOS.Free;
P.Free;
end;
end;
procedure TBackupCMOSForm.FormCreate(Sender: TObject);
begin
FileNameEdit.Text := ExtractFilePath(Application.ExeName) + 'CMOSDATA.cms';
DataSizeComboBox.Text := IntToStr(CMOS_DEFAULT_DATASIZE);
end;
procedure TBackupCMOSForm.OkButtonClick(Sender: TObject);
var
Data: TBackupCMOSData;
begin
if CheckValid then
begin
GetData(Data);
BackupCMOS(Data);
ModalResult := mrOk;
end;
end;
procedure TBackupCMOSForm.CanclButtonClick(Sender: TObject);
begin
ModalResult := mrCancel;
end;
procedure TBackupCMOSForm.BrowseButtonClick(Sender: TObject);
begin
SaveDialog.FileName := FileNameEdit.Text;
if SaveDialog.Execute then
begin
FileNameEdit.Text := SaveDialog.FileName;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -