仿 Delphi 设计虚线背景

 
  
procedure TForm1.DrawBackground;
var FScale : integer;
FGridX :double;
FGridY :double;

procedure Line(x, y, x1, y1: Integer);
begin
Canvas.MoveTo(x, y);
Canvas.LineTo(x1, y1);
end ;

function ReverseColor(AColor: TColor): TColor;
var
iR0, iR1, iG0, iG1, iB0, iB1: integer;
begin
iR0 :
= GetRValue(AColor);
iR1 :
= 255 - iR0;
iG0 :
= GetGValue(AColor);
iG1 :
= 255 - iG0;
iB0 :
= GetBValue(AColor);
iB1 :
= 255 - iB0;

Result :
= RGB(iR1, iG1, iB1);
end ;


procedure DrawPoints;
var
GridBmp: TBitmap;
i: Extended;
c: TColor;
dx, dy: Extended;
begin
c :
= ReverseColor(self.Color);
FScale :
= 1 ;
FGridX :
= 5 ; // 96 / 25.4
FGridY :
= 5 ; // 96 / 25.4
dx :
= FGridX * FScale;
dy :
= FGridY * FScale;
if (dx > 2 ) and (dy > 2 ) then
begin
GridBmp :
= TBitmap.Create;
GridBmp.Width:
= Width;
GridBmp.Height :
= 1 ;

GridBmp.Canvas.Pen.Color :
= self.Color;
GridBmp.Canvas.MoveTo(
0 , 0 );
GridBmp.Canvas.LineTo(Width,
0 );

i :
= 0 ;
while i < Width do
begin
GridBmp.Canvas.Pixels[Round(i),
0 ] : = c;
i :
= i + dx;
end ;

i :
= 0 ;
while i < Height do
begin
Canvas.Draw(
0 , Round(i), GridBmp);
i :
= i + dy;
end ;

GridBmp.Free;
end ;
end ;
begin
DrawPoints;
end ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值