zoukankan      html  css  js  c++  java
  • WinAPI: IntersectRect、SubtractRect、UnionRect 用两个矩形合成一个新的矩形

    本例效果图:


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    {定义两个矩形常量}
    const
      R1: TRect = (Left:20; Top:30; Right:160; Bottom:100);
      R2: TRect = (Left:100; Top:10; Right:180; Bottom:120);
    
    {初始化按钮显示}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Button1.Caption := '两个原始矩形';
      Button2.Caption := '相交';
      Button3.Caption := '减去';
      Button4.Caption := '联合';
    end;
    
    {画出两个原始矩形}
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Refresh;
      Canvas.Brush.Color := clOlive;
      Canvas.Rectangle(R2);
      Canvas.Brush.Color := clBlue;
      Canvas.Rectangle(R1);
    end;
    
    {相交: IntersectRect}
    procedure TForm1.Button2Click(Sender: TObject);
    var
      R: TRect;
    begin
      Refresh;
      IntersectRect(R, R1, R2);
      Canvas.Brush.Color := clRed;
      Canvas.Rectangle(R);
    end;
    
    {减去: SubtractRect}
    procedure TForm1.Button3Click(Sender: TObject);
    var
      R: TRect;
    begin
      Refresh;
      SubtractRect(R, R1, R2);
      Canvas.Brush.Color := clRed;
      Canvas.Rectangle(R);
    end;
    
    {联合: UnionRect}
    procedure TForm1.Button4Click(Sender: TObject);
    var
      R: TRect;
    begin
      Refresh;
      UnionRect(R, R1, R2);
      Canvas.Brush.Color := clRed;
      Canvas.Rectangle(R);
    end;
    
    end.
    
  • 相关阅读:
    Pyhont 高阶函数
    Python 函数式编程
    Python 递归函数
    Python 函数的参数定义
    Lniux学习-AWK使用
    Windows10 下 VirtualBox6 中 Centos8 无法安装"增强功能"
    Linux学习-Shell-系统启动过程与执行方式
    接口测试-工具介绍
    Linux学习-Sed 命令
    Linux学习-命令行参数、函数
  • 原文地址:https://www.cnblogs.com/del/p/1205183.html
Copyright © 2011-2022 走看看