На форме имеются пять пронумерованных кругов разного цвета. Во внешнем файле записаны целые числа от 1 до 5.При нажатии на кнопку пуск происходит считывание чисел из файла и круги загораются и тут же гаснут в соотвествии с числом,указанном в файле
у меня есть код от этой программы.У меня такая же тема. Как она нормальная?
type krug=record //круг
nm:integer;//номер
x:integer; //абцисса центра
cp:TColor; //цвет пера
cb:TColor;//цвет кисти
end;
const n=5;
cl:array[1..n] of TColor=(clPurple,clBlue,clGreen,clAqua,clLime);
var
Form1: TForm1;
f:TextFile;//файл с числами
kr:array[1..n] of krug;//массив кругов
r,y:integer;//радиус и ордината центра кругов
a:integer;//считываемые числа
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
r:=40;
y:=2*r;
for i:=1 to n do
with kr[i] do
begin
nm:=i;
x:=(3*i-1)*r;
cp:=cl[i];
cb:=clBtnFace;
end;
clientwidth:=16*r;
position:=poScreenCenter;
Timer1.Enabled:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
assignfile(f,'chisla.txt');//файл в папке с программой
reset(f);
Timer1.Enabled:=true;
Timer1.Interval:=1000;
end;
procedure TForm1.FormPaint(Sender: TObject);
var i:integer;
begin
for i:=1 to n do
with Canvas do
begin
pen.Width:=3;
font.Style:=[fsBold];
font.Size:=12;
font.Color:=clRed;
pen.Color:=kr[i].cp;
brush.Color:=kr[i].cb;
ellipse(kr[i].x-r,y-r,kr[i].x+r,y+r);
textout(kr[i].x-8,y-10,inttostr(i));
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
read(f,a);
kr[a].cb:=kr[a].cp;
repaint;
sleep(500);
Application.ProcessMessages;
kr[a].cb:=clBtnFace;
if eof(f) then
begin
closefile(f);
Timer1.Enabled:=false;
end;
repaint;
end;