
24.05.2014, 15:22
|
 |
Профессионал
|
|
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
|
|
Цитата:
Сообщение от NaN43
Подскажите как правильно организовать цикл, чтобы в компоненте TImage был нарисован такой рисунок, и все квадраты были пронумерованы как указанно на рисунке.
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
bmp: TBitmap;
can: TCanvas;
i, X, Y: Integer;
R: TRect;
s: String;
begin
bmp := Image1.Picture.Bitmap;
bmp.Width := 357;
bmp.Height := 61;
can := bmp.Canvas;
can.Brush.Color := clWhite;
can.FillRect(Rect(0, 0, bmp.Width, bmp.Height));
can.Pen.Color := clGreen;
for i := 0 to 19 do
begin
X := 3 + 30 * (i mod 2) + 76 * (i div 4) - 3 * (i div 8);
Y := 4 + 30 * ((i div 2) mod 2);
R := Rect(X, Y, X + 20, Y + 20);
can.Brush.Color := $339900;
can.Brush.Style := bsSolid;
can.Rectangle(R);
s := IntToStr(i + 1);
Inc(X, (20 - can.TextWidth(s)) div 2);
Inc(Y, (20 - can.TextHeight(s)) div 2);
can.Brush.Style := bsClear;
can.TextRect(R, X, Y, s);
end;
end;
|