IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Движение квадрата, с изменением цвета
diehard
сообщение 2.07.2009 11:41
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской

Репутация: -  0  +


Добрый день товарищи программисты.
Собственно задание вот такое : Отобразить квадрат , длина стороны которого задаётся пользователем , бегущим по экрану и на каждой четверти пути (длина экрана) меняющим свой цвет .

Код программы :


unit Unit1;



interface



uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;



type

TForm1 = class(TForm)

Timer1: TTimer;
ListBox1: TListBox;
Edit1: TEdit;
Button1: TButton;


procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;

x, y , a: byte;

dx: byte;



implementation



{$R *.dfm}





procedure Ris;

begin


form1.ListBox1.Canvas.Pen.Color := form1.Color;
form1.ListBox1.Canvas.Rectangle(x,y,x+a,y+a);

x := x + dx;

form1.ListBox1.Canvas.Pen.Color := clBlack;
form1.ListBox1.Canvas.Rectangle(x,y,x+a,y+a);

end;



procedure TForm1.Timer1Timer(Sender: TObject);

begin

Ris;

end;



procedure TForm1.Button1Click(Sender: TObject);
begin
a:=strtoint(edit1.text);

x := 10;

y := 10;

dx := 10;

form1.Timer1.Interval := 50;

end;

end.



Ввод стороны знаю как делать , как он должен двигаться тоже представляю ... идея на счёт смены цвета вроде тоже есть (делим число пикселей формы на 4 части и следим в процессе перемещения квадрата за координатой икс , в какой она области , и меняем цвет карандаша ) , но сам квадрат двигаться не хочет nea.gif укажите , в чём ошибка wacko.gif использую Delphi 7
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
diehard
сообщение 2.07.2009 12:54
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской

Репутация: -  0  +


a) в принципе значения не имеет ... так красивее по моему ))
б) учили только как Canvas юзать ... вот сделал с Shape'ом , но всё равно не движется ... timer1.enable:=true;

unit Unit1;



interface



uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;



type

TForm1 = class(TForm)

Timer1: TTimer;
Edit1: TEdit;
Button1: TButton;
Shape1: TShape;


procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;

x, y , a: byte;

dx: byte;



implementation



{$R *.dfm}





procedure Ris;
begin
x:=10;
dx:=5;
x:=x+dx;
form1.Shape1.Left:=x;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Ris;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
a:=strtoint(edit1.text);
timer1.Enabled:=true;
form1.Shape1.Height:=a;
form1.Shape1.Width:=a;
timer1.Interval:=50;
end;
end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 13.07.2025 22:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"