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

📄 drawhot.pas

📁 有关多媒体的各个细节
💻 PAS
字号:
unit DrawHot;

interface

uses
  WinProcs, WinTypes,Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ExtCtrls;

const HotPointInstance=5;
      PointInstance=5;

    //画矩形
    procedure DrawRect(x0,y0,x1,y1:integer;canvas :TCanvas);
    //画虚线矩形
    procedure DrawDashRect(x0,y0,x1,y1:integer;canvas :TCanvas);
    //画四个边角小矩形
    procedure DrawLittleRect(x0,y0,x1,y1:integer;canvas :TCanvas);
    //判断当前鼠标是否在区域里
    function MousePointinrect(x,y,x0,y0,x1,y1:integer):boolean;
    //当前鼠标热点位置
    function MousePointinwhichrect(x,y,x0,y0,x1,y1:integer):integer;


implementation



function MousePointinrect(x,y,x0,y0,x1,y1:integer):boolean;
begin
  if (x>=x0-HotPointInstance * 2) and (x<=x1) and (y>=y0-HotPointInstance * 2) and (y<=y1) then
    result:=true
  else
    result:=false;
end;

function MousePointinwhichrect(x,y,x0,y0,x1,y1:integer):integer;
begin
  result:=-1;
  if Mousepointinrect(x,y,x0-10-HotPointInstance,y0-10-HotPointInstance,x0+10,y0+10) then
    result:=1;
  if (result=-1) and (Mousepointinrect(x,y,x0-10-HotPointInstance,y1-10-HotPointInstance,x0+10,y1+10)) then
    result:=2;
  if (result=-1) and (Mousepointinrect(x,y,x1-10-HotPointInstance,y0-10-HotPointInstance,x1+10,y0+10)) then
    result:=4;
  if (result=-1) and (Mousepointinrect(x,y,x1-10-HotPointInstance,y1-10-HotPointInstance,x1+10,y1+10)) then
    result:=3;
  if (result=-1) and (Mousepointinrect(x,y,x0,y0,x1,y1)) then
    result:=0;
end;

procedure DrawRect(x0,y0,x1,y1:integer;canvas :TCanvas);
begin
  with canvas do
  begin
    pen.style:=pssolid;  pen.color:=clRed;pen.mode:=pmcopy;
    brush.style:=bsclear;
    rectangle(x0-HotPointInstance,y0-HotPointInstance,x1-HotPointInstance+2,y1-HotPointInstance+2);
  end;
end;

procedure DrawDashRect(x0,y0,x1,y1:integer;canvas :TCanvas);
begin
  with canvas do
  begin
    pen.style:=psdot;  pen.color:=clRed; pen.mode:=pmnotxor;
    brush.style:=bsclear;
    rectangle(x0-HotPointInstance,y0-HotPointInstance,x1-HotPointInstance+2,y1-HotPointInstance+2);
  end;
end;

procedure DrawLittleRect(x0,y0,x1,y1:integer;canvas :TCanvas);
begin
  with canvas do
  begin
    pen.style:=pssolid;  pen.color:=clRed;pen.mode:=pmcopy;
    brush.style:=bssolid; brush.color:=clRed;
    rectangle(x0-PointInstance-HotPointInstance,y0-PointInstance-HotPointInstance,
    x0+PointInstance,y0+PointInstance);
    rectangle(x0-PointInstance-HotPointInstance,y1-PointInstance-HotPointInstance,
    x0+PointInstance,y1+PointInstance);
    rectangle(x1-PointInstance-HotPointInstance,y0-PointInstance-HotPointInstance,
    x1+PointInstance,y0+PointInstance);
    rectangle(x1-PointInstance-HotPointInstance,y1-PointInstance-HotPointInstance,
    x1+PointInstance,y1+PointInstance);
  end;
end;

end.

⌨️ 快捷键说明

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