用鼠标在窗口中画一个圆,并可以清除?怎么实现? 用鼠标在窗口中画一个圆,并可以清除?怎么实现?单击时记录圆心,移动时画出圆,再单击时光天化日除圆。因为用delphi只有两个星期,怎么实现以上的功能?帮帮小弟,谢谢啦。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.FormCreate(Sender: TObject);begin Canvas.Pen.Mode := pmNotXor;end;procedure TForm1.Button1Click(Sender: TObject);begin Canvas.Ellipse(100, 100, 200, 200);end;procedure TForm1.Button2Click(Sender: TObject);begin Canvas.Ellipse(100, 100, 200, 200);end; TCanvas Object(画布对象) 表5.1 TCanvas对象的方法━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 方法名称 形式及说明───────────────────────────────────────Arc Arc(x1,y1,x2,y2,x3,y3,x4,y4 : Integer); Arc方法在椭圆上画一段弧,椭圆由(x1,y1),(x2,y2) 两点所确定的椭圆所决 定。弧的起点是椭圆圆周和椭圆中心与(x3,y3)连线的交点。弧矩形终点是椭 圆圆周和椭圆中心与(x4,y4)连线的交点,以逆时针方向画弧。Chord Chord(x1,y1,x2,yx,x3,y3,x4,y4 : Integer); Chord方法连接椭圆上的两点,椭圆由(x1,y1),(x2,y3) 两点所确定的矩形决 定,(x3,y3)是始点,(x4,y4)是终点。Brushcopy Brushcopy(const Dest : TRect;Bitmap : TBitmap;const Source TRect; Color : TColor); Brushcopy方法把位图的一部分复制到画布的某个矩形区域,并用画笔的当 前颜色替换位图的颜色。参数Dest定义画布的一个矩形区域,该矩形用以填 充位图,Bitmap定义位图;Source定义位图中的矩形区域,该区域上的位图 将被复制;Color定义画笔中,用以替换位图的颜色。CopyRect CopyRect(Dest : TRect;Canvas : TCanvas; Source TRect); 此方法从另一个画布对象上复制部分图像到该画布。Canvas表示源画布, Source是源画布上要复制的图像区域。Dest表示目标画布上将接受复制 图像的矩形区域。Draw Draw(x,y : Integer;Graphic : TGraphic); 此方法在画布给定的象素点坐标(x,y)处画Graphic所给的图像,该图像可 以是位图,图标或元位图。Ellips Ellips(x1,y1,x2,y2 : Integer); Ellips方法在画布指定的矩形边界上画一个椭圆,(x1,y1)是矩形左上角的 象素坐标,x2,y2是矩形右下角的象素坐标。如果矩形形成一个区域,将 出现一个椭圆。LineTo LineTo(x,y : Integer); LineTo从当前位置画一条线至(x,y)所指定的位置,并把笔的位置移至(x ,y)。MoveTo MoveTo(x,y : Integer); MoveTo 将笔的当前位置设置到点(x,y)处,笔的当前位置在PenPos属性中, 改变笔的当前位置使用MoveTo方法,不要设法改变PenPos的值。Die Die(x1,y1,x2,y2,x3,y3,x4,y4 : Longint); Die方法绘制椭圆的一部分,椭圆由点(x1,y1),(x2,y2)所指定的矩形所决定, 绘制的那部分由椭圆中心到(x3,y3),(x4,y4)两点的两条辐射线所决定。Polygon Polygon(Points : array of TPrint); Polygon方法在画布上绘制一系列的点,各点依次连成线,最后将首尾两点 相接形成一个区域,并用当前笔刷填充此区域。Polyline Polyline(Ports : array of TPort); Polyline方法在画布上用当前画笔绘制一系列的点,各点依次连成线。StretchDraw StretchDraw(Const Rect : TRcct : Graphic : TGraphic); 此方法在Rect参数指定的矩形内画一图像。图像延伸改变大小以适应矩形。Rectangle Rectangle(X1,y1,x2,y2 : Integer); Rectangle方法在画布上用当前画刷绘制矩形,(x1,y1)是矩形的左上角,(x2,y2) 是矩形的右下角。RomlRect RomlRect((x1,y1,x2,y2,x3,y3, : Integer);DrawFocuseRect DrawFocusRect(Const Rect : TRect) 此方法绘制一矩形以指示此矩形获得焦点。此方法是异或(XOR)函数,第二 次调用时原有矩形将消失。DrawFocuseRect绘制的矩形不能滚动。要实现 滚动功能则先调用此方法使矩形消失,待滚动过后重新绘制。━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━5.1.2 Tpen Object(画笔对象) 应用程序常用TPen对象在画布上绘制各种线段,笔的颜色在Color属性中定义。线段宽度在Width属性中定义。 Style属性定义了线段的各种类型,如表5.2: 表5.2 Styled的取值及含义 ━━━━━━━━━━━━━━━━━━━━━━ Style 含义 ────────────────────── PSolod 画固定线段 PSDash 画由下划线组成的线段 PSDot 画由点组成的线段 PsDashDot 画点划线 PsClear 画双点划线 PsClear 画看不见的线段 PsInsideFrame 画边界的矩形线框 ━━━━━━━━━━━━━━━━━━━━━━━ Mode属性定义线段的颜色。可结合当前的颜色、屏幕颜色或它们反转值,对线段的颜色重新定义,但不改变Color属性。详见表5.3。 表5.3 Mode的取值及含义 ━━━━━━━━━━━━━━━━━━━━━━━━━━━ Mode 象素颜色 ────────────────────────── PmBlack 黑色 PmWhite 白色 PmNop 不变 PmCopy 使用Color属性中的颜色 PmNotCopy 笔颜色的反转值 PmMergePenNot 笔的颜色与屏幕颜色反转值的结合 PmNaskNotPen 屏幕颜色与笔颜色 PmMergeNotPen 屏幕颜色与笔颜色反转值的结合 ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 一个变通的方法,我以前拿它做过图片裁剪,你试试。单击后保存单击点坐标。再临时生成一个shape。在mousemove中控制shape的top、left、height、width.再单击时,把shape free 掉。 TDBGrid组件,修改数据表问题 就这么一句都没法执行,一旦执行,cpu就占到99%左右,然后就是等待,没结果,咋弄? ADOQuery一问 Stringgrid的简单问题 哪里有cxGrid的用法? excel在delphi操作时什么时候释放资源? 最高分赠送:如何在DELPHI中阅读PDF文件,帮我UP,一定给分,解决问题者送200分 产生随机时间! 用什么程序解开由InstallShield制作的.CAB文件? 怎么保存窗体??? 如果对string类型的数据操作啊? 如何在标题栏上加图像和按钮??
begin
Canvas.Pen.Mode := pmNotXor;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Canvas.Ellipse(100, 100, 200, 200);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
Canvas.Ellipse(100, 100, 200, 200);
end;
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
方法名称 形式及说明
───────────────────────────────────────
Arc Arc(x1,y1,x2,y2,x3,y3,x4,y4 : Integer);
Arc方法在椭圆上画一段弧,椭圆由(x1,y1),(x2,y2) 两点所确定的椭圆所决
定。弧的起点是椭圆圆周和椭圆中心与(x3,y3)连线的交点。弧矩形终点是椭
圆圆周和椭圆中心与(x4,y4)连线的交点,以逆时针方向画弧。
Chord Chord(x1,y1,x2,yx,x3,y3,x4,y4 : Integer);
Chord方法连接椭圆上的两点,椭圆由(x1,y1),(x2,y3) 两点所确定的矩形决
定,(x3,y3)是始点,(x4,y4)是终点。
Brushcopy Brushcopy(const Dest : TRect;Bitmap : TBitmap;const Source TRect;
Color : TColor);
Brushcopy方法把位图的一部分复制到画布的某个矩形区域,并用画笔的当
前颜色替换位图的颜色。参数Dest定义画布的一个矩形区域,该矩形用以填
充位图,Bitmap定义位图;Source定义位图中的矩形区域,该区域上的位图
将被复制;Color定义画笔中,用以替换位图的颜色。
CopyRect CopyRect(Dest : TRect;Canvas : TCanvas; Source TRect);
此方法从另一个画布对象上复制部分图像到该画布。Canvas表示源画布,
Source是源画布上要复制的图像区域。Dest表示目标画布上将接受复制
图像的矩形区域。
Draw Draw(x,y : Integer;Graphic : TGraphic);
此方法在画布给定的象素点坐标(x,y)处画Graphic所给的图像,该图像可
以是位图,图标或元位图。
Ellips Ellips(x1,y1,x2,y2 : Integer);
Ellips方法在画布指定的矩形边界上画一个椭圆,(x1,y1)是矩形左上角的
象素坐标,x2,y2是矩形右下角的象素坐标。如果矩形形成一个区域,将
出现一个椭圆。
LineTo LineTo(x,y : Integer);
LineTo从当前位置画一条线至(x,y)所指定的位置,并把笔的位置移至(x ,y)。
MoveTo MoveTo(x,y : Integer);
MoveTo 将笔的当前位置设置到点(x,y)处,笔的当前位置在PenPos属性中,
改变笔的当前位置使用MoveTo方法,不要设法改变PenPos的值。
Die Die(x1,y1,x2,y2,x3,y3,x4,y4 : Longint);
Die方法绘制椭圆的一部分,椭圆由点(x1,y1),(x2,y2)所指定的矩形所决定,
绘制的那部分由椭圆中心到(x3,y3),(x4,y4)两点的两条辐射线所决定。
Polygon Polygon(Points : array of TPrint);
Polygon方法在画布上绘制一系列的点,各点依次连成线,最后将首尾两点
相接形成一个区域,并用当前笔刷填充此区域。
Polyline Polyline(Ports : array of TPort);
Polyline方法在画布上用当前画笔绘制一系列的点,各点依次连成线。
StretchDraw StretchDraw(Const Rect : TRcct : Graphic : TGraphic);
此方法在Rect参数指定的矩形内画一图像。图像延伸改变大小以适应矩形。
Rectangle Rectangle(X1,y1,x2,y2 : Integer);
Rectangle方法在画布上用当前画刷绘制矩形,(x1,y1)是矩形的左上角,(x2,y2)
是矩形的右下角。
RomlRect RomlRect((x1,y1,x2,y2,x3,y3, : Integer);
DrawFocuseRect
DrawFocusRect(Const Rect : TRect)
此方法绘制一矩形以指示此矩形获得焦点。此方法是异或(XOR)函数,第二
次调用时原有矩形将消失。DrawFocuseRect绘制的矩形不能滚动。要实现
滚动功能则先调用此方法使矩形消失,待滚动过后重新绘制。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━5.1.2 Tpen Object(画笔对象) 应用程序常用TPen对象在画布上绘制各种线段,笔的颜色在Color属性中定义。线段宽度在Width属性中定义。
Style属性定义了线段的各种类型,如表5.2: 表5.2 Styled的取值及含义
━━━━━━━━━━━━━━━━━━━━━━
Style 含义
──────────────────────
PSolod 画固定线段
PSDash 画由下划线组成的线段
PSDot 画由点组成的线段
PsDashDot 画点划线
PsClear 画双点划线
PsClear 画看不见的线段
PsInsideFrame 画边界的矩形线框
━━━━━━━━━━━━━━━━━━━━━━━ Mode属性定义线段的颜色。可结合当前的颜色、屏幕颜色或它们反转值,对线段的颜色重新定义,但不改变Color属性。详见表5.3。 表5.3 Mode的取值及含义
━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mode 象素颜色
──────────────────────────
PmBlack 黑色
PmWhite 白色
PmNop 不变
PmCopy 使用Color属性中的颜色
PmNotCopy 笔颜色的反转值
PmMergePenNot 笔的颜色与屏幕颜色反转值的结合
PmNaskNotPen 屏幕颜色与笔颜色
PmMergeNotPen 屏幕颜色与笔颜色反转值的结合
━━━━━━━━━━━━━━━━━━━━━━━━━━━
单击后保存单击点坐标。
再临时生成一个shape。
在mousemove中控制shape的top、left、height、width.
再单击时,把shape free 掉。