Rysowaniue prostokątów - pomoc.

0

Witam,
Bardzo proszę o pomoc w napisaniu programu. Treść zadania brzmi:
"Utworzyć aplikację, która po każdorazowym naciśnięciu przycisku stopniowo zamalowuje (począwszy od lewej krawędzi) obraz komponentu Image kolorowymi prostokątami (pionowymi) o tej samej szerokości. Liczba pasków sterowana jest za pomocą komponentu SpinEdit"
Próbuję już na wszystkie sposoby, ale rysuje mi tylko pierwszy prostokąt. Nie wiem zupełnie gdzie leży błąd w moim rozumowaniu. Będę wdzięczny za małą podpowiedź.
Moje próby: (zamieszczam tylko zdarzenie kliknięcia przycisku)
"procedure TForm1.SpeedButton2Click(Sender: TObject);
var k:real;
p,j,i:integer;
begin
Image1.Canvas.Refresh;
k:=x/SpinEdit1.Value;
j:=Trunc(k);
p:=0;
for i:=1 to SpinEdit1.Value do
begin
Image1.Canvas.Brush.Color:=RGB(Random(255), Random(255), Random(255));
Image1.Canvas.Polygon([Point(p,0), Point(p+j,0), Point(p+j,y), Point(p,y)]);
p:=p+p;
end;
end;"

i

procedure TForm1.SpeedButton1Click(Sender: TObject);
var k:real;
p,j,i:integer;
begin
k:=x/SpinEdit1.Value;
j:=Trunc(k);
p:=0;
for i:=1 to SpinEdit1.Value do begin
Image1.Canvas.Brush.Color:=RGB(Random(255), Random(255), Random(255));
Image1.Canvas.Rectangle(p,0,j,y);
j:=j+j;
p:=p+j;
end;
end;"

W obu przypadkach rysuje tylko pierwszy prostokąt.
Z góry bardzo dziękuję,
Pozdrawiam.

0

Zwracając uwagę na fakt, że nie sprawdzałem kodu oraz późną godzinę nie daję gwarancji :P

procedure TForm1.SpeedButton1Click(Sender: TObject);
var k:real;
    p,j,i:integer;
begin
  k:=x/SpinEdit1.Value;
  j:=Trunc(k);
  for i:=1 to SpinEdit1.Value do begin
    Image1.Canvas.Brush.Color:=RGB(Random(255), Random(255), Random(255));
    Image1.Canvas.Rectangle((i-1)*j,0,i*j,y);
  end;
end
0

Działa.
Wielkie dzięki, widzę już swój błąd. :-)
Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1