procedure TForm4.FormPaint(Sender: TObject);
var
R: TRect;
begin
R := ClientRect;
InflateRect(R, -10, -10);
Canvas.Brush.Color := clYellow;
Canvas.Brush.Style := bsFDiagonal;
Canvas.Pen.Color := clRed;
Canvas.Rectangle(R);
end;
产生结果
(不要忘记Invalidate
在表格中OnResize
。)
请注意,该区域用对角黄线填充。这确实是bsFDiagonal
画笔样式的作用。
从你的问题的措辞(“我想画一个对角线十字架[...]”),我怀疑你实际上想要别的东西,即矩形内的一个大十字架。这是使用标准刷子根本无法实现的。相反,您必须手动绘制它:
procedure TForm4.FormPaint(Sender: TObject);
var
R: TRect;
begin
R := ClientRect;
InflateRect(R, -10, -10);
Canvas.Brush.Color := clWhite;
Canvas.Brush.Style := bsSolid;
Canvas.Pen.Color := clRed;
Canvas.Rectangle(R);
Canvas.MoveTo(10, 10);
Canvas.LineTo(R.Right, R.Bottom);
Canvas.MoveTo(10, R.Bottom);
Canvas.LineTo(R.Right, 10);
end;