由shape控件得到Rgn(2000/11/21 三金 版权所有

原创 2002年12月02日 09:42:00

由shape控件得到Rgn(2000/11/21 三金 版权所有

如有问题,请参考VCL库shape组件源代码
function GetShapeRgn(shape:TShape):HRgn;
var
X, Y, W, H, S: Integer;
ret:HRgn;
begin
    result:=0;
    X :=shape.left+shape.Pen.Width div 2;
    Y :=shape.top+shape.Pen.Width div 2 ;
    W :=shape.Width- shape.Pen.Width + 1;
    H :=shape.Height-shape.Pen.Width + 1;
    if shape.Pen.Width = 0 then
    begin
      Dec(W);
      Dec(H);
    end;
    if W < H then S := W else S := H;
    if shape.Shape in [stSquare, stRoundSquare, stCircle] then
    begin
      Inc(X, (W - S) div 2); //得到新的X值
      Inc(Y, (H - S) div 2); //得到新的Y值
      W := S;
      H := S;
    end;
    case shape.Shape of
      stRectangle, stSquare:
        begin
            ret:=CreateRectRgn(X, Y, X + W, Y + H);
            if ret=null then
                result:=0
            else
                result:=ret;
        end;
      stRoundRect, stRoundSquare:
        begin
            ret:=CreateRoundRectRgn(X, Y, X + W, Y + H, S div 4, S div 4);
            if ret=null then
                result:=0
            else
                result:=ret;
        end;
      stCircle, stEllipse:
        begin
            ret:=CreateEllipticRgn(X, Y, X + W, Y + H);
            if ret=null then
                result:=0
            else
                result:=ret;
        end;
    end;
end;
 

更好更多文章尽在三金主页-天铭心草堂
http://vip.6to23.com/tianmingxin

Python 中dict 字典方法小结

Python 中字典用法小结
  • sisiel
  • sisiel
  • 2017年09月19日 10:56
  • 278

关于add和Floodfill的记录

今天做了一个项目总结,本来很快能结束的,结果因为这两个函数不理解耽误了很长时间,以此记录一下。 add函数: C++: void add(InputArray src1, InputArray...
  • jialeheyeshu
  • jialeheyeshu
  • 2016年04月09日 18:27
  • 262

Source param shape is 4096 9216 (37748736); target param shape is 4096 25088 (102760448).

I1221 15:49:07.614038 28846 net.cpp:228] relu1_1 does not need backward computation. I1221 15:49:07...
  • zouyu1746430162
  • zouyu1746430162
  • 2016年12月21日 16:50
  • 1627

【算法】用程序验证规律,1,11,21,1211,111221

原文地址:http://blog.sina.com.cn/s/blog_537a13270100z2oj.html 第一个数是:1; 第二个数是:11; 第三个数是:21; 第四个数是:1211...
  • duxinyuhi
  • duxinyuhi
  • 2016年11月22日 11:07
  • 1824

Shape 属性形状控件Shape

返回或设置一个值,该值指示一个 Shape 控件的外观。 语法 object.Shape [= value] Shape 属性的语法包含下面部分: 部分 描述 Object 对象表达式,其值...
  • NCTU_to_prove_safety
  • NCTU_to_prove_safety
  • 2016年09月07日 11:03
  • 759

自定义控件shape详解

[TOC] android开发中需要使用自定义资源文件,shape文件可以做成任意形状经常用作背景色。 在AS中可以在drawable文件下右键新建resource file 然后在文件内将标题改...
  • qq_34767498
  • qq_34767498
  • 2016年07月01日 17:56
  • 600

根据位图创建区域Rgn--VC

界面编程// 根据位图文件 创建 区域 HRGN BitmapToRegion (HBITMAP hBmp, COLORREF cTransparentColor =  0, COLORREF cTo...
  • Blue_Dream_
  • Blue_Dream_
  • 2007年11月22日 13:07
  • 3671

android使用shape来绘制控件

在android中常使用shape来作为控件的背景,来实现对控件形状的设计 shape的文件 位于 drawable文件中  在drawable目录下 添加 任意文件名的xml文件(myshape.x...
  • liaomin416100569
  • liaomin416100569
  • 2016年10月27日 11:49
  • 574

Android-自定义控件样式之shape

自定义控件样式shape1、描边stroke和填充solid介绍①效果图 ②代码详情:
  • u014314614
  • u014314614
  • 2015年12月20日 13:00
  • 1132

VB中的shape控件怎么画一个不停随机变换颜色的球

'需要用到time控件,代码如下 Private Sub Form_Load()   Shape1.BackStyle = 1   Shape1.Shape = 3   Timer1.Inte...
  • NCTU_to_prove_safety
  • NCTU_to_prove_safety
  • 2016年09月07日 11:04
  • 861
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:由shape控件得到Rgn(2000/11/21 三金 版权所有
举报原因:
原因补充:

(最多只允许输入30个字)