zoukankan      html  css  js  c++  java
  • WinAPI: SetRect 及初始化矩形的几种办法

    本例分别用五种办法初始化了同样的一个矩形, 运行效果图:


    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;
        Button5: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        procedure Button5Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    //使用 API 函数: SetRect
    procedure TForm1.Button1Click(Sender: TObject);
    var
      R: TRect;
    begin
      SetRect(R, 20, 20, 80, 80);
      Canvas.Pen.Color := clBlue;
      Canvas.Rectangle(R);
    end;
    
    //使用 Classes.Rect 函数
    procedure TForm1.Button2Click(Sender: TObject);
    var
      R: TRect;
    begin
      R := Rect(20, 20, 80, 80);
      Canvas.Pen.Color := clFuchsia;
      Canvas.Rectangle(R);
    end;
    
    //使用 Classes.Rect 函数, 用两个点合成
    procedure TForm1.Button3Click(Sender: TObject);
    const
      pt1: TPoint = (x:20; y:20);
      pt2: TPoint = (x:80; y:80);
    var
      R: TRect;
    begin
      R := Rect(pt1, pt2);
      Canvas.Pen.Color := clSkyBlue;
      Canvas.Rectangle(R);
    end;
    
    //矩形常量
    procedure TForm1.Button4Click(Sender: TObject);
    const
      R: TRect = (Left:20; Top:20; Right:80; Bottom:80);
    begin
      Canvas.Pen.Color := clTeal;
      Canvas.Rectangle(R);
    end;
    
    //使用 Classes.Bounds 函数, 我最喜欢这种办法
    procedure TForm1.Button5Click(Sender: TObject);
    var
      R: TRect;
    begin
      R := Bounds(20, 20, 60, 60);
      Canvas.Pen.Color := clWhite;
      Canvas.Rectangle(R);
    end;
    
    end.
    
  • 相关阅读:
    smarty的学习
    用接口实现封装的一个mysqli工具类
    centos7/8安装java和mysql
    Mysql 8.0 忘记密码报错1045办法,skip-grant-tables不管用
    卸载vivo手机自带的应用程序
    DevOps的学习(一)
    quartzy的spring注入问题
    html加载执行的顺序
    关于时间Date转换成long类型的方法(时间戳的转换)
    系统中出现乱码
  • 原文地址:https://www.cnblogs.com/del/p/1205628.html
Copyright © 2011-2022 走看看