Икар Кабачков
Просветленный
(23556)
7 лет назад
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
n: integer=0;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const x: array [0..2] of tcolor=(clRed,clYellow,clBlue);
begin
Form1.Color:= x[n];
n:=(n+1)mod 3;
end;
end.
Николай ЗадорожныйУченик (51)
7 лет назад
А почему mod 3? И получается, что только в глобальных переменных можно задавать первоначальное значение n, чтобы оно использовалось один раз?
ByShark
Мастер
(2341)
7 лет назад
А зачем нут массивы? Можно просто поставить рандомом
Николай ЗадорожныйУченик (51)
7 лет назад
Меня заинтересовал ваш метод. Подскажите, что тут не так?
procedure TForm1.Button1Click(Sender: TObject);
const
x:array[0..2] of tcolor=(clred,clgreen,clyellow);
var
n:integer;
begin
for n:=0 to 2 do
random(n);
form1.color:=x[n];
end;
end.
var
x: array [1..3] of dword;
n:integer;
begin
x[1] := clRed; x[2]:=clYellow; x[3]:=clBlue;
n:=1;
if (n < 3) then begin
inc(n);
Form1.Color:= x[n];
end
else Form1.Color:=x[1];
end;
end.
Программа заключается в том, что по нажатию кнопки цвет формы должен меняться. Но он не меняется, потому что по нажатию кнопки параметру n всегда присваивается только число 1. Что здесь поменять???