You've already forked lazarus-ccr
Sudoku: have separate Edit and Clean buttons (Fill also cleared the grid).
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7231 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -5,7 +5,7 @@ object Form1: TForm1
|
||||
Width = 333
|
||||
HorzScrollBar.Page = 271
|
||||
VertScrollBar.Page = 280
|
||||
ActiveControl = ButtonFill
|
||||
ActiveControl = btnEdit
|
||||
BorderStyle = bsDialog
|
||||
Caption = 'Sudoku Solver'
|
||||
ClientHeight = 359
|
||||
@ -29,24 +29,33 @@ object Form1: TForm1
|
||||
OnPrepareCanvas = SGridPrepareCanvas
|
||||
OnSelectEditor = SGridSelectEditor
|
||||
end
|
||||
object ButtonFill: TButton
|
||||
object btnEdit: TButton
|
||||
Left = 16
|
||||
Height = 25
|
||||
Top = 312
|
||||
Width = 75
|
||||
BorderSpacing.InnerBorder = 2
|
||||
Caption = 'Fill'
|
||||
OnClick = ButtonFillClick
|
||||
Caption = 'Edit'
|
||||
OnClick = btnEditClick
|
||||
TabOrder = 0
|
||||
end
|
||||
object ButtonSolve: TButton
|
||||
Left = 151
|
||||
object btnSolve: TButton
|
||||
Left = 208
|
||||
Height = 25
|
||||
Top = 312
|
||||
Width = 75
|
||||
BorderSpacing.InnerBorder = 2
|
||||
Caption = 'Solve'
|
||||
OnClick = ButtonSolveClick
|
||||
OnClick = btnSolveClick
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnClear: TButton
|
||||
Left = 96
|
||||
Height = 25
|
||||
Top = 312
|
||||
Width = 75
|
||||
Caption = 'Clear'
|
||||
OnClick = btnClearClick
|
||||
TabOrder = 3
|
||||
end
|
||||
end
|
||||
|
@ -38,11 +38,13 @@ type
|
||||
{ TForm1 }
|
||||
|
||||
TForm1 = class(TForm)
|
||||
ButtonSolve: TButton;
|
||||
ButtonFill: TButton;
|
||||
btnClear: TButton;
|
||||
btnSolve: TButton;
|
||||
btnEdit: TButton;
|
||||
SGrid: TStringGrid;
|
||||
procedure ButtonFillClick(Sender: TObject);
|
||||
procedure ButtonSolveClick(Sender: TObject);
|
||||
procedure btnClearClick(Sender: TObject);
|
||||
procedure btnEditClick(Sender: TObject);
|
||||
procedure btnSolveClick(Sender: TObject);
|
||||
procedure EditorKeyPress(Sender: TObject; var Key: char);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure SGridPrepareCanvas(sender: TObject; aCol, aRow: Integer;
|
||||
@ -67,18 +69,18 @@ implementation
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
procedure TForm1.ButtonFillClick(Sender: TObject);
|
||||
var
|
||||
c, r: Integer;
|
||||
procedure TForm1.btnEditClick(Sender: TObject);
|
||||
begin
|
||||
for c := 0 to pred(SGrid.ColCount) do
|
||||
for r := 0 to pred(SGrid.RowCount) do
|
||||
SGrid.Cells[c, r] := '';
|
||||
SGrid.Options := SGrid.Options + [goEditing];
|
||||
SGrid.SetFocus;
|
||||
end;
|
||||
|
||||
procedure TForm1.ButtonSolveClick(Sender: TObject);
|
||||
procedure TForm1.btnClearClick(Sender: TObject);
|
||||
begin
|
||||
SGrid.Clean;
|
||||
end;
|
||||
|
||||
procedure TForm1.btnSolveClick(Sender: TObject);
|
||||
begin
|
||||
SGrid.Options := SGrid.Options - [goEditing];
|
||||
SolveSudoku;
|
||||
|
Reference in New Issue
Block a user