|
#1
|
|||
|
|||
Проблемы
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. Код:
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. Проблемы появляются в 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' Посоветуйте, что можно сделать, заранее спасибо. Последний раз редактировалось Admin, 22.10.2010 в 11:57. |
#2
|
||||
|
||||
Цитата:
E2003 необъявленный идентификатор: "ColorTrue" E2003 необъявленный идентификатор: "ColorTrue" E2003 необъявленный идентификатор: "ColorFalse" |
#3
|
|||
|
|||
А ведь и вправду не объявлен!
ColorFalse и ColorTrue - это не родное! |
#4
|
||||
|
||||
Не совсем так. Они объявлены, вот только объявлены они в другом модуле, а его имени в Uses не наблюдается.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |