📄 drawhot.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 + -