📄 sandparm.pas
字号:
unit SandParm;
// The dialog box shown on each simulation start-up
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TParameterForm = class(TForm)
OkButton: TButton;
CancelButton: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure FormActivate(Sender: TObject);
procedure OkButtonClick(Sender: TObject);
end;
var
ParameterForm: TParameterForm;
implementation
uses
SandMain;
{$R *.DFM}
{------------------- TParameterForm -------------------}
procedure TParameterForm.FormActivate(Sender: TObject);
begin
// Get parameters for simulation
Edit1.Text := IntToStr(MainForm.PileSize);
Edit2.Text := IntToStr(MainForm.AddRect);
Edit3.Text := IntToStr(MainForm.MaxRounds);
Edit1.SetFocus; // User-friendliness
Edit1.SelectAll;
end;
procedure TParameterForm.OkButtonClick(Sender: TObject);
procedure ParameterError(const S: String; EditBox: TEdit);
begin
MessageDlg(S, mtError, [mbOk], 0);
EditBox.SetFocus;
EditBox.SelectAll;
ModalResult := mrNone;
end;
begin
// Check validity of parameters before closing
if StrToInt(Edit1.Text) > 255 then
ParameterError('Pile size cannot exceed 255.', Edit1);
if StrToInt(Edit2.Text) > StrToInt(Edit1.Text) then
ParameterError('Diameter must be inside pile size.', Edit2);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -