![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Исходный текст. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ⇐ ПредыдущаяСтр 4 из 4
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, unit2, ExtCtrls, ComCtrls, unit3, StdCtrls, ImgList;
type TForm1 = class(TForm) MainMenu1: TMainMenu; FileMenuItem: TMenuItem; NewMenuItem: TMenuItem; N3: TMenuItem; N4: TMenuItem; InformationMenuItem: TMenuItem; AboutMenuItem: TMenuItem; Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Panel5: TPanel; Panel6: TPanel; Panel7: TPanel; Panel8: TPanel; Panel9: TPanel; Panel10: TPanel; Timer1: TTimer; ImageList1: TImageList; procedure AboutMenuItemClick(Sender: TObject); procedure Panel2Click(Sender: TObject); procedure Panel5Click(Sender: TObject); procedure Panel8Click(Sender: TObject); procedure Panel3Click(Sender: TObject); procedure Panel6Click(Sender: TObject); procedure Panel9Click(Sender: TObject); procedure Panel4Click(Sender: TObject); procedure Panel7Click(Sender: TObject); procedure Panel10Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure NewMenuItemClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure N4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1;
Implementation
{$R *.dfm}
procedure clean; // Процедура общего сброса (" Новая игра") begin Form1.Timer1.Enabled: =false; // Для надежности выключаем таймер Form1.Panel2.BevelInner: =bvNone; // Меняем стиль панели на начальный Form1.Panel2.Caption: =''; // Убираем заголовок панели Form1.Panel3.BevelInner: =bvNone; Form1.Panel3.Caption: =''; Form1.Panel4.BevelInner: =bvNone; Form1.Panel4.Caption: =''; Form1.Panel5.BevelInner: =bvNone; Form1.Panel5.Caption: =''; Form1.Panel6.BevelInner: =bvNone; Form1.Panel6.Caption: =''; Form1.Panel7.BevelInner: =bvNone; Form1.Panel7.Caption: =''; Form1.Panel8.BevelInner: =bvNone; Form1.Panel8.Caption: =''; Form1.Panel9.BevelInner: =bvNone; Form1.Panel9.Caption: =''; Form1.Panel10.BevelInner: =bvNone; Form1.Panel10.Caption: =''; Form1.Tag: =0; Form1.Timer1.Enabled: =true; // Возобновляем работу таймера end;
procedure TForm1.AboutMenuItemClick(Sender: TObject); begin Form2.ShowModal; // Вызываем окно " О программе" end;
procedure TForm1.Panel2Click(Sender: TObject); begin if Panel2.Caption< > '' then exit; // Проверка на заголовок панели (анти-мухлеж) Panel2.BevelInner: =bvLowered; // Присваиваем стиль при нажатии на панель if Form1.Tag=0 then // Меняем tag формы (для чередования X и O) begin Panel2.Caption: ='X'; // если таг=0 тогда вписываем X Form1.Tag: =1; end else begin Panel2.Caption: ='O'; // если таг=1 тогда вписываем O Form1.Tag: =0; end; end; procedure TForm1.Panel5Click(Sender: TObject); begin if Panel5.Caption< > '' then exit; Panel5.BevelInner: =bvLowered; if Form1.Tag=0 then begin Panel5.Caption: ='X'; Form1.Tag: =1; end else begin Panel5.Caption: ='O'; Form1.Tag: =0; end; end;
procedure TForm1.Panel8Click(Sender: TObject); begin if Panel8.Caption< > '' then exit; Panel8.BevelInner: =bvLowered; if Form1.Tag=0 then begin Panel8.Caption: ='X'; Form1.Tag: =1; end else begin Panel8.Caption: ='O'; Form1.Tag: =0; end; end;
procedure TForm1.Panel3Click(Sender: TObject); begin if Panel3.Caption< > '' then exit; Panel3.BevelInner: =bvLowered; if form1.Tag=0 then begin Panel3.Caption: ='X'; Form1.Tag: =1; end else begin Panel3.Caption: ='O'; Form1.Tag: =0; end; end;
procedure TForm1.Panel6Click(Sender: TObject); begin if Panel6.Caption< > '' then exit; Panel6.BevelInner: =bvLowered; if form1.Tag=0 then begin Panel6.Caption: ='X'; Form1.Tag: =1; end else begin Panel6.Caption: ='O'; Form1.Tag: =0; end; end;
procedure TForm1.Panel9Click(Sender: TObject); begin if Panel9.Caption< > '' then exit; Panel9.BevelInner: =bvLowered; if form1.Tag=0 then begin Panel9.Caption: ='X'; Form1.Tag: =1; end else begin Panel9.Caption: ='O'; Form1.Tag: =0; end; end;
procedure TForm1.Panel4Click(Sender: TObject); begin if Panel4.Caption< > '' then exit; Panel4.BevelInner: =bvLowered; if Form1.Tag=0 then begin Panel4.Caption: ='X'; Form1.Tag: =1; end else begin Panel4.Caption: ='O'; Form1.Tag: =0; end; end;
procedure TForm1.Panel7Click(Sender: TObject); begin if Panel7.Caption< > '' then exit; Panel7.BevelInner: =bvLowered; if Form1.Tag=0 then begin Panel7.Caption: ='X'; Form1.Tag: =1; end else begin Panel7.Caption: ='O'; Form1.Tag: =0; end; end;
procedure TForm1.Panel10Click(Sender: TObject); begin if Panel10.Caption< > '' then exit; Panel10.BevelInner: =bvLowered; if Form1.Tag=0 then begin Panel10.Caption: ='X'; Form1.Tag: =1; end else begin Panel10.Caption: ='O'; Form1.Tag: =0; end; end;
procedure TForm1.Timer1Timer(Sender: TObject); // Процедура проверки на выигрыш; begin try // защита от непредвиденных ошибок if (Panel2.BevelInner=bvLowered) and (Panel4.BevelInner=bvLowered) and (Panel3.BevelInner=bvLowered) then // Если панели нажаты, то проверяем заголовки if (Panel2.Caption=Panel3.Caption) and (Panel2.Caption=Panel4.Caption) then begin Form3.Label1.Caption: =Form1.Panel2.Caption; // Если выигрышная комбинация то присваиваем Х или О в Лейбл формы поздравления Form3.ShowModal; // Открываем окно поздравления ": -)" clean; // Очистка игрового поля end;
if (Panel7.BevelInner=bvLowered) and (Panel5.BevelInner=bvLowered) and (Panel6.BevelInner=bvLowered) then if (Panel5.Caption=Panel6.Caption) and (Panel5.Caption=Panel7.Caption) then begin Form3.Label1.Caption: =Form1.Panel5.Caption; Form3.ShowModal; clean; end;
if (Panel9.BevelInner=bvLowered) and (Panel10.BevelInner=bvLowered) and (Panel8.BevelInner=bvLowered) then if (Panel8.Caption=Panel9.Caption) and (Panel8.Caption=Panel10.Caption) then begin Form3.Label1.Caption: =Form1.Panel10.Caption; Form3.ShowModal; clean; end;
if (Panel5.BevelInner=bvLowered) and (Panel2.BevelInner=bvLowered) and (Panel8.BevelInner=bvLowered) then if (Panel2.Caption=Panel5.Caption) and (Panel2.Caption=Panel8.Caption) then begin Form3.Label1.Caption: =Form1.Panel2.Caption; Form3.ShowModal; clean; end;
if (Panel9.BevelInner=bvLowered) and (Panel3.BevelInner=bvLowered) and (Panel6.BevelInner=bvLowered) then if (Panel6.Caption=Panel3.Caption) and (Panel6.Caption=Panel9.Caption) then begin Form3.Label1.Caption: =Form1.Panel3.Caption; Form3.ShowModal; clean; end;
if (Panel4.BevelInner=bvLowered) and (Panel7.BevelInner=bvLowered) and (Panel10.BevelInner=bvLowered) then if (Panel4.Caption=Panel7.Caption) and (Panel10.Caption=Panel4.Caption) then begin Form3.Label1.Caption: =Form1.Panel4.Caption; Form3.ShowModal; clean; end;
if (Panel6.BevelInner=bvLowered) and (Panel2.BevelInner=bvLowered) and (Panel10.BevelInner=bvLowered) then if (Panel2.Caption=Panel6.Caption) and (Panel2.Caption=Panel10.Caption) then begin Form3.Label1.Caption: =Form1.Panel2.Caption; Form3.ShowModal; clean; end;
if (Panel6.BevelInner=bvLowered) and (Panel8.BevelInner=bvLowered) and (Panel4.BevelInner=bvLowered) then if (Panel4.Caption=Panel6.Caption) and (Panel8.Caption=Panel4.Caption) then begin Form3.Label1.Caption: =Form1.Panel4.Caption; Form3.ShowModal; clean; end; except; end;
if (Panel2.BevelInner=bvLowered) and (Panel3.BevelInner=bvLowered) and (Panel4.BevelInner=bvLowered) and (Panel5.BevelInner=bvLowered) and (Panel6.BevelInner=bvLowered) and (Panel7.BevelInner=bvLowered) and (Panel8.BevelInner=bvLowered) and (Panel9.BevelInner=bvLowered) and (Panel10.BevelInner=bvLowered) then begin Form1.Timer1.Enabled: =False; ShowMessage ('Ничья, попробуйте ещё раз! '); clean; end; end;
procedure TForm1.NewMenuItemClick(Sender: TObject); begin clean; // Очистка игрового поля для новой игры end;
procedure TForm1.FormCreate(Sender: TObject); var l: DWORD; // Процедура блокировки кнопки " Развернуть" begin l: =GetWindowLong(Self.Handle, GWL_STYLE); l: =l and not(WS_MAXIMIZEBOX); l: =SetWindowLong(Self.Handle, GWL_STYLE, l); end;
procedure TForm1.N4Click(Sender: TObject); begin Close; // Выход из программы end;
end.
unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls;
type TForm2 = class(TForm) Image1: TImage; Label1: TLabel; Label3: TLabel; Label2: TLabel; Label4: TLabel; procedure Image1Click(Sender: TObject); procedure Label1Click(Sender: TObject); procedure Label2Click(Sender: TObject); procedure Label3Click(Sender: TObject); procedure Label4Click(Sender: TObject);
private { Private declarations } public { Public declarations } end;
var Form2: TForm2;
Implementation
{$R *.dfm}
procedure TForm2.Image1Click(Sender: TObject); begin Close; // Закрытие окна при нажатии на него end;
procedure TForm2.Label1Click(Sender: TObject); begin Close; end;
procedure TForm2.Label2Click(Sender: TObject); begin Close; end;
procedure TForm2.Label3Click(Sender: TObject); begin Close; end; procedure TForm2.Label4Click(Sender: TObject); begin Close; end;
end.
unit Unit3;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg;
type TForm3 = class(TForm) Image1: TImage; Label3: TLabel; Label2: TLabel; Label1: TLabel; procedure FormShow(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Label1Click(Sender: TObject); procedure Label2Click(Sender: TObject); procedure Label3Click(Sender: TObject);
private { Private declarations } public { Public declarations } end;
var Form3: TForm3;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm3.FormShow(Sender: TObject); begin Form1.Timer1.Enabled: =False; // Выключаем таймер end;
procedure TForm3.Image1Click(Sender: TObject); begin Close; // Закрытие окна при нажатии на него end;
procedure TForm3.Label1Click(Sender: TObject); begin Close; end;
procedure TForm3.Label2Click(Sender: TObject); begin Close; end;
procedure TForm3.Label3Click(Sender: TObject); begin Close; end;
end.
|