Собственно задание вот такое : Отобразить квадрат , длина стороны которого задаётся пользователем , бегущим по экрану и на каждой четверти пути (длина экрана) меняющим свой цвет .
Код программы :
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 части и следим в процессе перемещения квадрата за координатой икс , в какой она области , и меняем цвет карандаша ) , но сам квадрат двигаться не хочет укажите , в чём ошибка использую Delphi 7