-
Notifications
You must be signed in to change notification settings - Fork 0
/
u_settings.pas
106 lines (79 loc) · 2.41 KB
/
u_settings.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
unit u_Settings;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin;
type
{ TfrmConfig }
TfrmConfig = class(TForm)
btnAceptar: TButton;
btnCancelar: TButton;
cboTileSize: TComboBox;
GroupBox1: TGroupBox;
Label1: TLabel;
lblPixelSize: TLabel;
speTilesetSize: TSpinEdit;
procedure btnAceptarClick(Sender: TObject);
procedure btnCancelarClick(Sender: TObject);
procedure cboTileSizeChange(Sender: TObject);
private
public
end;
var
frmConfig: TfrmConfig;
implementation
{$R *.lfm}
{ TfrmConfig }
procedure TfrmConfig.btnCancelarClick(Sender: TObject);
begin
ModalResult := 2;
Close;
end;
procedure TfrmConfig.cboTileSizeChange(Sender: TObject);
begin
if speTilesetSize.Value < (StrToInt(cboTileSize.Caption)*2) then
speTilesetSize.Value:= StrToInt(cboTileSize.Caption)*2;
speTilesetSize.Increment:= StrToInt(cboTileSize.Caption);
end;
procedure TfrmConfig.btnAceptarClick(Sender: TObject);
var
res: integer;
errorflag: boolean;
begin
res := 0;
errorflag := False;
if StrToInt(cboTileSize.Caption) < 4 then
begin
res := Application.MessageBox('El tamaño del tile no puede ser inferior a 4.',
'Valor incorrecto', $10);
errorflag := True;
cboTileSize.Caption:= '4';
cboTileSize.SetFocus;
end
else if StrToInt(cboTileSize.Caption) > 64 then
begin
res := Application.MessageBox('El tamaño del tile no puede ser superior a 64.',
'Valor incorrecto', $10);
errorflag := True;
cboTileSize.Caption:= '64';
cboTileSize.SetFocus;
end;
if speTilesetSize.Value < StrToInt(cboTileSize.Caption)*2 then
begin
res := Application.MessageBox('El ancho del tileset no puede ser inferior al doble del tamaño del tile.',
'Valor incorrecto', $10);
errorflag := True;
speTilesetSize.Value:= StrToInt(cboTileSize.Caption)*2;
speTilesetSize.SetFocus;
end
else if speTilesetSize.Value > 1024 then
begin
res := Application.MessageBox('El ancho del tile no puede ser superior a 1024.',
'Valor incorrecto', $10);
errorflag := True;
speTilesetSize.SetFocus;
end;
if not errorflag then
ModalResult := 1;
end;
end.