知识大全 Delphi图形图像编程(二)[1]

Posted

篇首语:高斋晓开卷,独共圣人语。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi图形图像编程(二)[1]相关的知识,希望对你有一定的参考价值。

DELPHI基础教程:Delphi图形图像编程(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  画直线时 用户只有在松开鼠标才能看见直线 对直线的变化不能进行实时观测 这是因为鼠标移动时程序没有进行某种应 Delphi定义了OnMouseMove事件来响应鼠标移动 以下代码可使用户随时观测直线的变化

  procedure TForm FormMouseMove(Sender:Tobject)

  begin

  Drowto(X Y)

  Moveto(origin)

  end

  origin是起始点

   绘图功能的实现

  绘图软件常根据用户的要求改变绘图工具 Graphex dpr例程中 当用户按下某个按钮时 可选择绘图工具中的画笔或画刷 在程序类型说明部分定义了五种绘图工具

  type

  TDrawingTool = (dtLine dtRectangle dtEllips dtRoundRect dtPolygon)

  当选中某种按钮 则选中了相应的绘图工具 如

  procedure TForm LineButtonClick(Sender: TObject)

  begin

  DrawingTool := dtLine;

  end;

  procedure TForm RectangleButtonClick(Sender: TObject)

  begin

  DrawingTool := dtRectangle;

  end;

  procedure TForm EllipseButtonClick(Sender: TObject)

  begin

  DrawingTool := dtEllipse;

  end;

  procedure TForm RoundRectButtonClick(Sender: TObject)

  begin

  DrawingTool := dtRoundRect;

  end;

  procedure TForm PolygonButtonClick(Sender: TObject)

  begin

  DrawingTool :=dtPolygon;

  end;

  DrawShape过程定义了每种绘图工具的动作

  procedure TForm DrawShape(TopLeft BottomRight: TPoint; AMode: TPenMode)

  begin

  with Image Canvas do

  begin

  Pen Mode := AMode;

  case DrawingTool of

  dtLine: begin

  MoveTo(TopLeft X TopLeft Y)

  LineTo(BottomRight X BottomRight Y)

  end;

  dtRectangle: Rectangle(TopLeft X TopLeft Y BottomRight X BottomRight Y)

  dtEllipse: Ellipse(TopLeft X TopLeft Y BottomRight X BottomRight Y)

  dtRoundRect: RoundRect(TopLeft X TopLeft Y BottomRight X BottomRight Y

  (TopLeft X BottomRight X) div (TopLeft Y BottomRight Y) div )

  dtPolygon:Polygon([Point( ) TopLeft BottomRight]) end;

  end;

  end;

  程序刚运行时 只有一个工具栏 当用户单击画笔和画刷时 则出现相应的工具栏 其代码如下

  procedure TForm PenButtonClick(Sender: TObject)

  begin

  PenBar Visible := PenButton Down;

  end;

  procedure TForm BrushButtonClick(Sender: TObject)

  begin

  BrushBar Visible := BrushButton Down;

  end;

  在设计绘图程序时 还要解决一些问题 如为了在鼠标移动时能观测图形的变化 我们定义了OnMouseMove事件 但会出现这样的现象 当鼠标进入绘图区时 用户未按下鼠标键 画布上却出现绘制的图形 这是我们不希望看到的 其原因是没有对鼠标按钮是否按下进行判断 因此在窗体对象中定义了drawing的域 当鼠标按钮按下时 drawing 设置成真值 只有drawing为真 鼠标移动才执行绘图功能 当鼠标键松开时 drawing设置成假 鼠标移动将不执行绘图动作

cha138/Article/program/Delphi/201311/25246

相关参考

知识大全 Delphi图形图像编程(二)[2]

DELPHI基础教程:Delphi图形图像编程(二)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Delphi图形图像编程(一)[1]

DELPHI基础教程:Delphi图形图像编程(一)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Delphi图形图像编程(一)[3]

DELPHI基础教程:Delphi图形图像编程(一)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Delphi图形图像编程(一)[2]

DELPHI基础教程:Delphi图形图像编程(一)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Delphi编程访问注册表(二)

Delphi编程访问注册表(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  二编程思想  (

知识大全 Delphi面向对象的编程方法(二)

Delphi面向对象的编程方法(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 SQL编程(二)[1]

DELPHI基础教程:SQL编程(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第十

知识大全 动态链接库编程(二)[1]

DELPHI基础教程:动态链接库编程(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 数据浏览部件的应用及编程(二)[1]

DELPHI基础教程:数据浏览部件的应用及编程(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(二)[1]

DELPHI基础教程:数据访问部件的应用及编程(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一