diskiofrm.pas

来自「MiniHex 1.1 源程序说明 “MiniHex11SrcSourc」· PAS 代码 · 共 79 行

PAS
79
字号
unit DiskIOFrm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, FileCtrl;

type
  TDiskIOData = record
    Drive: Char;
    FromSector: Integer;
    SectorCount: Integer;
  end;

  TDiskIOForm = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    DriveComboBox: TDriveComboBox;
    Label2: TLabel;
    Label3: TLabel;
    FromSectorEdit: TEdit;
    SectorCountEdit: TEdit;
    OkButton: TButton;
    CanclButton: TButton;
    procedure OkButtonClick(Sender: TObject);
    procedure CanclButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure GetData(var Value: TDiskIOData);
  end;

var
  DiskIOForm: TDiskIOForm;

function ShowDiskIOForm(ReadSector: Boolean; var Value: TDiskIOData): Boolean;

implementation

{$R *.DFM}

function ShowDiskIOForm(ReadSector: Boolean; var Value: TDiskIOData): Boolean;
var
  Frm: TDiskIOForm;
begin
  Frm := TDiskIOForm.Create(Application);
  if ReadSector then Frm.Caption := '读磁盘扇区'
  else
  begin
    Frm.Caption := '写磁盘扇区';
    Frm.SectorCountEdit.Text := '';
    Frm.SectorCountEdit.Enabled := False;
    Frm.SectorCountEdit.Color := clBtnFace;
  end;
  Result := (Frm.ShowModal = mrOk);
  if Result then Frm.GetData(Value);
end;

procedure TDiskIOForm.GetData(var Value: TDiskIOData);
begin
  Value.Drive := DriveComboBox.Drive;
  Value.FromSector := StrToIntDef(FromSectorEdit.Text, 0);
  Value.SectorCount := StrToIntDef(SectorCountEdit.Text, 1);
end;

procedure TDiskIOForm.OkButtonClick(Sender: TObject);
begin
  ModalResult := mrOk;
end;

procedure TDiskIOForm.CanclButtonClick(Sender: TObject);
begin
  ModalResult := mrCancel;
end;

end.

⌨️ 快捷键说明

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