Unit1
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TFormGame = class(TForm)
PanelBar: TPanel;
PanelGame: TPanel;
PanelResult: TPanel;
ButtonNew: TButton;
ButtonCreate: TButton;
ButtonExit: TButton;
Timer1: TTimer;
ShapeStar: TShape;
procedure FormCreate(Sender: TObject);
procedure ButtonCreateClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ShapeStarMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure ButtonNewClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormGame: TFormGame;
Star:TShape;
n,
Size,
f:integer;
ColorFalse,
ColorTrue:TColor;
Implementation
uses Unit2;
{$R *.dfm}
procedure TFormGame.ButtonCreateClick(Sender: TObject);
var color:integer;
begin
for f := 1 to n do begin
Star := TShape.Create(FormGame);
Star.Name := 'Sh'+IntToStr(f);
Star.Width := Size;
Star.Height := Size;
Star.Top := random(PanelGame.Height - Size);
Star.Left := random(PanelGame.Height - Size);
Color := random(2);
if color = 0 then Star.Brush.Color := ColorFalse
else Star.Brush.Color := ColorTrue;
Star.OnMouseDown := ShapeStarMouseDown;
Star.Parent := PanelGame;
end;
end;
procedure TFormGame.ButtonNewClick(Sender: TObject);
begin
FormNew.ShowModal;
end;
procedure TFormGame.FormClose(Sender: TObject; var Action: TCloseAction);
begin
for f:=1 to n do ( FindComponent ( 'sh'+IntToStr(f))).Free;
end;
procedure TFormGame.FormCreate(Sender: TObject);
begin
randomize;
n := 30;
Size := 10;
ColorFalse := Clred;
ColorTrue := ClGreen;
end;
procedure TFormGame.ShapeStarMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Var p:boolean;
begin
TShape(Sender).visible:=false;
if TShape(Sender).Brush.Color=ColorFalse then begin
PanelResult.Font.Color:=clred;
PanelResult.Caption:='Проигрыш!:(';
PanelResult.Visible:=True;
PanelGame.Enabled:=False;
Exit;
end;
p:=false;
for f := 1 to n do
if(TShape(FindComponent('sh'+IntToStr(f))).visible=true) and
(TShape(FindComponent('sh'+IntToStr(f))).Brush.Color=ColorTrue)
then p:=true;
if not p then begin
PanelResult.Font.Color:=clGreen;
PanelResult.Caption:='Мы выйграли!;)';
PanelResult.Visible:=True;
PanelGame.Enabled:=False;
end;
end;
end.
Unit2
Код:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TFormNew = class(TForm)
GroupBox1: TGroupBox;
RadioN: TRadioGroup;
RadioSize: TRadioGroup;
Label1: TLabel;
Label2: TLabel;
PanelColorTrue: TPanel;
PanelColorFalse: TPanel;
ButtonFonTrue: TButton;
ButtonFonFalse: TButton;
ButtonNew: TButton;
ColorDialog: TColorDialog;
procedure FormCreate(Sender: TObject);
procedure ButtonFonTrueClick(Sender: TObject);
procedure ButtonFonFalseClick(Sender: TObject);
procedure PanelColorTrueClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormNew: TFormNew;
implementation
{$R *.dfm}
procedure TFormNew.ButtonFonFalseClick(Sender: TObject);
begin
if ColorDialog.Execute then ColorFalse := ColorDialog.Color;
PanelColorFalse.Color := ColorFalse;
end;
procedure TFormNew.ButtonFonTrueClick(Sender: TObject);
begin
if ColorDialog.Execute then ColorTrue := ColorDialog.Color;
PanelColorTrue.Color := ColorTrue;
end;
procedure TFormNew.FormCreate(Sender: TObject);
begin
PanelColorTrue.Color :=ColorTrue;
PanelColorFalse.Color :=ColorFalse;
end;
end.
Admin: Учимся правильно пользоваться тегами!!
Проблемы появляются в Unit2, вот их описание:
[DCC Error] Unit2.pas(41): E2003 Undeclared identifier: 'ColorFalse'
[DCC Error] Unit2.pas(47): E2003 Undeclared identifier: 'ColorTrue'
[DCC Error] Unit2.pas(53): E2003 Undeclared identifier: 'ColorTrue'
[DCC Error] Unit2.pas(54): E2003 Undeclared identifier: 'ColorFalse'
[DCC Fatal Error] Unit1.pas(42): F2063 Could not compile used unit 'Unit2.pas'
Посоветуйте, что можно сделать, заранее спасибо.