⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 练习delphi的popmenu控件的使用和一些api的认识
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, Buttons, ComCtrls, ToolWin, ExtCtrls;

type
  TForm1 = class(TForm)
    ToolBar1: TToolBar;
    PopupMenu1: TPopupMenu;
    rect: TMenuItem;
    roundrect: TMenuItem;
    circle: TMenuItem;
    ellipt: TMenuItem;
    polygon: TMenuItem;
    N1: TMenuItem;
    exit: TMenuItem;
    Image1: TImage;
    procedure rectClick(Sender: TObject);
    procedure roundrectClick(Sender: TObject);
    procedure circleClick(Sender: TObject);
    procedure elliptClick(Sender: TObject);
    procedure polygonClick(Sender: TObject);
    procedure exitClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  temprgn:THandle;

implementation

{$R *.dfm}

procedure TForm1.rectClick(Sender: TObject);
var
  w,h:integer;
begin
  w:=form1.ClientWidth;
  h:=form1.ClientHeight;
  temprgn:=createrectrgn(0,0,w,h);
  setwindowrgn(handle,temprgn,true);
end;

procedure TForm1.roundrectClick(Sender: TObject);
var
  w,h:integer;
begin
  w:=form1.ClientWidth;
  h:=form1.ClientHeight;
  temprgn:=createroundrectrgn(0,0,w,h,50,50);
  setwindowrgn(handle,temprgn,true);
end;

procedure TForm1.circleClick(Sender: TObject);
var
  w,h:integer;
begin
  w:=form1.ClientWidth;
  h:=form1.ClientHeight;
  if w<=h then
    temprgn:=createellipticrgn(0,0,w,w)
  else
    temprgn:=createellipticrgn(0,0,h,h);
  setwindowrgn(handle,temprgn,true);
end;

procedure TForm1.elliptClick(Sender: TObject);
var
  w,h:integer;
begin
  w:=form1.ClientWidth;
  h:=form1.ClientHeight;
  temprgn:=createellipticrgn(0,0,w,h);
  setwindowrgn(handle,temprgn,true);
end;

procedure TForm1.polygonClick(Sender: TObject);
type
  p=array[0..7,0..1] of integer;
var
  w,h,l1,l2: integer;
  //l1,l2:TPoint;
  pts:p;
begin
  w:=form1.ClientWidth;
  h:=form1.ClientHeight;
  if w<=h then
  begin
    l1:=w div 3;
    l2:=(w*2) div 3;
  end
  else
  begin
    l1:=h div 3;
    l2:=(h*2) div 3;
  end;
  pts:=((0,l1),(l1,0),(l2,0),
      (w,l2),(l2,h),(l1,h),(0,l2),(0,l1));
  temprgn:=createpolygonrgn(pts{[point(0,l1),point(l1,0),point(l2,0),
       point(w,l2),point(l2,h),point(l1,h),point(0,l2),point(0,l1)]},8,alternate);
  setwindowrgn(handle,temprgn,true);
end;

procedure TForm1.exitClick(Sender: TObject);
begin
  application.Terminate;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -