summaryrefslogtreecommitdiff
path: root/unit1.pas
diff options
context:
space:
mode:
Diffstat (limited to 'unit1.pas')
-rw-r--r--unit1.pas100
1 files changed, 99 insertions, 1 deletions
diff --git a/unit1.pas b/unit1.pas
index c4fa179..72ec28c 100644
--- a/unit1.pas
+++ b/unit1.pas
@@ -6,7 +6,7 @@ interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
- Spin, ComCtrls, ExtCtrls, SlitherlinkUnit;
+ Spin, ComCtrls, ExtCtrls, Menus, SlitherlinkUnit;
type
@@ -19,7 +19,14 @@ type
Button4: TButton;
Button5: TButton;
CheckBox1: TCheckBox;
+ MenuItem1: TMenuItem;
+ MenuItem2: TMenuItem;
+ MenuItem3: TMenuItem;
+ MenuItem4: TMenuItem;
+ MenuItem5: TMenuItem;
+ MenuItem6: TMenuItem;
OpenDialog1: TOpenDialog;
+ PopupMenu1: TPopupMenu;
ProgressBar1: TProgressBar;
SaveDialog1: TSaveDialog;
SpinEdit1: TSpinEdit;
@@ -37,6 +44,12 @@ type
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure FormResize(Sender: TObject);
+ procedure MenuItem1Click(Sender: TObject);
+ procedure MenuItem2Click(Sender: TObject);
+ procedure MenuItem3Click(Sender: TObject);
+ procedure MenuItem4Click(Sender: TObject);
+ procedure MenuItem5Click(Sender: TObject);
+ procedure MenuItem6Click(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure SpinEdit3Change(Sender: TObject);
@@ -149,6 +162,91 @@ begin
Progressbar1.Width:=Form1.ClientWidth-Progressbar1.Left;
end;
+procedure TForm1.MenuItem1Click(Sender: TObject);
+var
+ x,y: longint;
+ s: string;
+begin
+// Feld.FelderErzeugen;
+ spinedit1.value:=13;
+ spinedit2.value:=12;
+ checkbox1.checked:=true;
+(* s:=
+ ' 2222 2222 '+
+ '22 22 22 22'+
+ '2 00 2320 02'+
+ '1 0 0 1 1'+
+ '1 1'+
+ '2 2'+
+ '21 12'+
+ '120 21'+
+ '022 022 '+
+ ' 22 022 '+
+ ' 0 221 122 0 '+
+ ' 01232100 '; // geht! *)
+ s:=
+ '02 0 022 0'+
+ '2 0 2'+
+ ' 3 2'+
+ ' 0 0 0 1'+
+ '1 '+
+ ' 0 '+
+ '2 1 '+
+ '1 02 '+
+ '0220 02 '+
+ ' 20 '+
+ ' 0 2 '+
+ ' 1 3 0 ';
+
+ for x:=0 to Feld.Breite-1 do
+ for y:=0 to Feld.Hoehe-1 do
+ if s[1+x+y*Feld.Breite]<>' ' then
+ Feld.Felder[x+y*(Feld.Breite+1)]:=
+ ord(s[1+x+y*Feld.Breite])-ord('0');
+ Feld.Zeichnen;
+end;
+
+procedure TForm1.MenuItem2Click(Sender: TObject);
+begin
+ Feld.Leeren(ProgressBar1,1);
+ Feld.Zeichnen;
+end;
+
+procedure TForm1.MenuItem3Click(Sender: TObject);
+var
+ anz: longint;
+begin
+ anz:=Feld.LoesungsAnzahl;
+ messagedlg('Es gibt zur Zeit '+inttostr(anz)+' Lösungsmöglichkeit'+copy('en',1,2*byte(anz<>1))+'.',mtInformation,[mbOk],0);
+end;
+
+procedure TForm1.MenuItem4Click(Sender: TObject);
+var
+ i: longint;
+begin
+ for i:=0 to 9 do begin
+ Feld.Leeren(ProgressBar1,1);
+ Feld.Zeichnen;
+ Application.ProcessMessages;
+ end;
+end;
+
+procedure TForm1.MenuItem5Click(Sender: TObject);
+begin
+ Feld.Leeren(ProgressBar1,1,false);
+end;
+
+procedure TForm1.MenuItem6Click(Sender: TObject);
+var
+ i: longint;
+begin
+ for i:=0 to 9 do begin
+ Feld.Leeren(ProgressBar1,1,false);
+ Feld.Zeichnen;
+ Application.ProcessMessages;
+ end;
+end;
+
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
Feld.Breite:=SpinEdit1.Value;