2

TShape の向きを変更する方法があるかどうかを知りたいので、正方形の代わりに、回転させてひし形のように見せたい..

TShape の方法ではない場合、どうすればこれを行うことができますか?

4

2 に答える 2

5

TShape 自体は回転できません。しかし、TPaintBox を使用して独自のグラフィックスを好きなように描画することができます。それは、その間に描画するポイントを数学的にプロットするだけの問題です。例えば:

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  Points: array[0..3] of TPoint;
  W, H: Integer;
begin
  W := PaintBox1.Width;
  H := PaintBox1.Height;

  Points[0].X := W div 2;
  Points[0].Y := 0;

  Points[1].X := W;
  Points[1].Y := H div 2;

  Points[2].X := Points[0].X;
  Points[2].Y := H;

  Points[3].X := 0;
  Points[3].Y := Points[1].Y;

  PaintBox1.Canvas.Brush.Color := clBtnFace;
  PaintBox1.Canvas.FillRect(Rect(0, 0, W, H));

  PaintBox1.Canvas.Brush.Color := clBlue;
  PaintBox1.Canvas.Pen.Color := clBlack;
  PaintBox1.Canvas.Pen.Width := 1;
  PaintBox1.Canvas.Polygon(Points);
end;
于 2013-07-09T04:29:01.377 に答える