unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;type
TForm1 = class(TForm)
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); private
{ Private declarations } public
{ Public declarations } end;var
Form1: TForm1;
i,maxX,minX,maxY,minY:integer;
ks:boolean;
kk:array[0..10000] of Tpoint;
function CreateRGN(BorderPointDynArray: array of TPoint): HRGN;
implementation{$R *.dfm}procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ks:=true;
maxx:=x;
minx:=x;
maxy:=y;
miny:=y;
end;procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
kk[i].x:=x;
kk[i].Y :=y;
i:=i+1;
if x>maxx then maxx:=x;
if x<minx then minx:=x;
if y>maxy then maxy:=y;
if y<miny then miny:=y;
end;procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
rgn:Hrgn;
s:integer;
begin
rgn:= CreateRGN (kk);
for x:=minx to maxx do
for y:=miny to maxy do
if PtInRegion(rgn, x, y) then
s:=s+1;
caption:=inttostr(s);end;
function CreateRGN(BorderPointDynArray: array of TPoint): HRGN;
begin
Result := CreatePolygonRgn(BorderPointDynArray[0],
Length(BorderPointDynArray), ALTERNATE);
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;type
TForm1 = class(TForm)
Image1: TImage;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); private
{ Private declarations } public
{ Public declarations } end;var
Form1: TForm1;
i,maxX,minX,maxY,minY:integer;
ks:boolean;
kk:array[0..10000] of Tpoint;
function CreateRGN(BorderPointDynArray: array of TPoint): HRGN;
implementation{$R *.dfm}procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ks:=true;
maxx:=x;
minx:=x;
maxy:=y;
miny:=y;
end;procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
kk[i].x:=x;
kk[i].Y :=y;
i:=i+1;
if x>maxx then maxx:=x;
if x<minx then minx:=x;
if y>maxy then maxy:=y;
if y<miny then miny:=y;
end;procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
rgn:Hrgn;
s:integer;
begin
rgn:= CreateRGN (kk);
for x:=minx to maxx do
for y:=miny to maxy do
if PtInRegion(rgn, x, y) then
s:=s+1;
caption:=inttostr(s);end;
function CreateRGN(BorderPointDynArray: array of TPoint): HRGN;
begin
Result := CreatePolygonRgn(BorderPointDynArray[0],
Length(BorderPointDynArray), ALTERNATE);
end;end.
解决方案 »
- 求DevExpressV39
- Delphi 中 Date TimePicker 控件,如何限制用户输入的日期不能超过系统日期?
- 急!!!有谁用过Spreadsheet吗!!怎样进行单元格的读取和赋值呢?烦请高手指点!!进者有分!
- 怎么在delphi里面写序号添加到数据库?
- 存储过程传递参数出错
- 谁又gb2312的简体繁体转换的源程序。。
- 请问delphi7.0中有没有一个框架的控件或者那有第三方的控件,谢谢!
- COM问题
- 请问如何将一个tdataset对象中的记录按字段排序,如时间字段?
- 为什么同一进程,同一connection,只是不同时候修改了数据,会出现冲突???
- 研究外挂技术的平台!!!
- 如何给DBGrid的滚动条加上颜色?
if ks=false then exit;Image1MouseUp事件中把
ks:=false;
to zhuangbx220数组大小够用,因为图片不大,加不加检测没有关系吧!!!