⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dblocks.pas

📁 KSDev.BlockEngine.v3.03.rar 界面控件
💻 PAS
字号:
unit dblocks;

{$I be_define.inc}

interface

uses Windows, Classes, Controls, Contnrs, Graphics, SysUtils, GdipObj,
  Gdipapi, GdipUtil, ddoc;

type

  NewRect = class(Block)
  private
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure DrawBlock(G: TGPGraphics); override;
  published
  end;

implementation {===============================================================}

{ NewRect ========================================================================}

constructor NewRect.Create;
var
  P: BlockPoint;
begin
  inherited;
  { Snap }
  P := BlockPoint(Points.Add);
  P.Kind := pkSnapPoint;
  P.X := 0;
  P.Y := 0.5;
  P := BlockPoint(Points.Add);
  P.Kind := pkSnapPoint;
  P.X := 0.5;
  P.Y := 0;
  P := BlockPoint(Points.Add);
  P.Kind := pkSnapPoint;
  P.X := 1;
  P.Y := 0.5;
  P := BlockPoint(Points.Add);
  P.Kind := pkSnapPoint;
  P.X := 0.5;
  P.Y := 1;
  P := BlockPoint(Points.Add);
  P.Kind := pkBlockSnapPoint;
  P.X := 0.5;
  P.Y := 0.5;
end;

destructor NewRect.Destroy;
begin
  inherited;
end;

procedure NewRect.DrawBlock(G: TGPGraphics);
var
  P: TGPPen;
  B: TGPBrush;
begin
  P := Stroke.GetPen;
  B := Fill.GetBrush(PointXByName('lefttop'), PointYByName('lefttop'), PointXByName('rightbottom'), PointYByName('rightbottom'));
  G.FillRectangle(B, PointXByName('lefttop'), PointYByName('lefttop'), PointXByName('rightbottom') - PointXByName('lefttop'), PointYByName('rightbottom') - PointYByName('lefttop'));
  G.DrawRectangle(P, PointXByName('lefttop'), PointYByName('lefttop'), PointXByName('rightbottom') - PointXByName('lefttop'), PointYByName('rightbottom') - PointYByName('lefttop'));
  B.Free;
  P.Free;
end;

initialization
  RegisterClasses([NewRect]);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -