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.
    
  • 相关阅读:
    最全的常用正则表达式大全--包括校验数字、字符、一些特殊的需求等【转】
    【转】浏览器“后退”、“前进”或可以这么去监听
    vue单页面title修改
    Vue.js中ref ($refs)用法举例总结
    js 程序执行与顺序实现详解
    $(document).ready和window.onload的区别 【转】
    linq to xml(C#)
    TCP/IP|| 建立连接或终止
    TCP/IP TCP
    TCP/IP DNS
  • 原文地址:https://www.cnblogs.com/del/p/1205183.html
Copyright © 2011-2022 走看看