知识大全 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基础教程:Delphi图形图像编程(二)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
DELPHI基础教程:Delphi图形图像编程(一)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
DELPHI基础教程:Delphi图形图像编程(一)[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
DELPHI基础教程:Delphi图形图像编程(一)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
Delphi编程访问注册表(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 二编程思想 (
Delphi面向对象的编程方法(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:SQL编程(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第十
DELPHI基础教程:动态链接库编程(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
DELPHI基础教程:数据浏览部件的应用及编程(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
DELPHI基础教程:数据访问部件的应用及编程(二)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一