Hogyan kell megírni a lenti programot Lazarusban?
Közben kaptam egy privát üzenetet a kérdezőtől, majnem ugyanez volt, csak while ciklussal és más 'érdekes' változókkal, ezért megmutatom amire én gondoltam:
procedure TForm1.Button1Click(Sender: TObject);
var x, y, szin : integer;
begin
Image1.Width := 400;
Image1.Height := 400;
szin := 1;
for y := 0 to 3 do
begin
if Odd(y) then szin:= 1 else szin := 0;
for x := 0 to 3 do
begin
if Odd(szin) then Image1.Canvas.Brush.Color := clRed else Image1.Canvas.Brush.Color := clBlue;
Image1.Canvas.FillRect(Rect(x * 100, y * 100, (x + 1) * 100, (y + 1) * 100));
Inc(szin);
end;
end;
end;
Egy picit rövidebben pedig:
procedure TForm1.Button1Click(Sender: TObject);
var x, y : integer;
begin
Image1.Width := 400;
Image1.Height := 400;
for y := 0 to 3 do
for x := 0 to 3 do
begin
if Odd(y + x) then Image1.Canvas.Brush.Color := clRed else Image1.Canvas.Brush.Color := clBlue;
Image1.Canvas.FillRect(Rect(x * 100, y * 100, (x + 1) * 100, (y + 1) * 100));
end;
end;
Tisztelet.
Az én verzióm: egy kicsit több változóval (ezért viszont kiszámolja a négyzetek méretet, az ablak méretéhez képest - ha változott az ablak méret), viszont kevesebb if-fel és egy ciklussal : [link]
Üdv.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!