zoukankan      html  css  js  c++  java
  • 分别使用静态数组与动态数组建立一个区域 回复 "老A123" 的问题


    问题来源: http://www.cnblogs.com/del/archive/2008/05/26/1207811.html#1475006

    本例效果图:



    代码文件:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    {使用静态数组建立区域}
    procedure TForm1.Button1Click(Sender: TObject);
    var
      arr: array[0..3] of TPoint;
      rgn: HRGN;
      w,h: Integer;
    begin
      w := ClientWidth;
      h := ClientHeight;
      arr[0] := Point(w div 2, 0);
      arr[1] := Point(w, h div 2);
      arr[2] := Point(w div 2, h);
      arr[3] := Point(0, h div 2);
      rgn := CreatePolygonRgn(arr, Length(arr), WINDING);
    
      {下面是描边和填充这个区域}
      Canvas.Brush.Color := clSilver;
      FrameRgn(Canvas.Handle, rgn, Canvas.Brush.Handle, 1, 1);
    
      Canvas.Brush.Style := bsCross;
      FillRgn(Canvas.Handle, rgn, Canvas.Brush.Handle);
    end;
    
    {使用动态数组建立区域}
    procedure TForm1.Button2Click(Sender: TObject);
    var
      arr: array of TPoint;
      rgn: HRGN;
      w,h: Integer;
    begin
      SetLength(arr, 4);
      w := ClientWidth;
      h := ClientHeight;
      arr[0] := Point(w div 2, 0);
      arr[1] := Point(w, h div 2);
      arr[2] := Point(w div 2, h);
      arr[3] := Point(0, h div 2);
      rgn := CreatePolygonRgn(arr[0], Length(arr), WINDING); {第一个参数是数组的起点}
    
      {下面是描边和填充这个区域}
      Canvas.Brush.Color := clRed;
      FrameRgn(Canvas.Handle, rgn, Canvas.Brush.Handle, 1, 1);
      Canvas.Brush.Style := bsCross;
      FillRgn(Canvas.Handle, rgn, Canvas.Brush.Handle);
    end;
    
    end.
    

    窗体文件:
    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 175
      ClientWidth = 289
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object Button1: TButton
        Left = 208
        Top = 113
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 0
        OnClick = Button1Click
      end
      object Button2: TButton
        Left = 208
        Top = 144
        Width = 75
        Height = 25
        Caption = 'Button2'
        TabOrder = 1
        OnClick = Button2Click
      end
    end
    

  • 相关阅读:
    Apache Solr入门教程(初学者之旅)
    Codeforces 631 (Div. 2) E. Drazil Likes Heap 贪心
    Codeforces 631 (Div. 2) D. Dreamoon Likes Sequences 位运算^ 组合数 递推
    Codeforces 631 (Div. 2) C. Dreamoon Likes Coloring 思维or构造
    python中的类型转换
    MVC3.0在各个版本IIS中的部署
    get和post的区别
    Vue和React对比
    谈谈你对web标注和W3c的理解和认识
    js中的undefined 和null
  • 原文地址:https://www.cnblogs.com/del/p/1409708.html
Copyright © 2011-2022 走看看