Delphi GDI+ 实现简单画图


本文整理自网络,侵删。

 

 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs;

 

type

  TForm1 = class(TForm)

    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

uses

  GDIPAPI,GDIPOBJ; //包含这两个GDI+单元

var

  flag:Integer; //声明一个用作标志位的变量,根据它的值来决定是否开始画图

  Downx,Downy:Integer; //记录鼠标点下时的坐标

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

  flag:=1; //鼠标点下了,标志置1

  Downx:=x; //同时记录下点击的坐标

  Downy:=y; 

end;

 

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

  Y: Integer);

var

  g: TGPGraphics;

  p: TGPPen;

 

begin

  Form1.DoubleBuffered:=True; //开启双缓冲

  if flag = 1 then      //判断是否开始画图,标志为1就开始画

  begin

    g := TGPGraphics.Create(Canvas.Handle); //创建对象

    p := TGPPen.Create(aclRed,2);

 

    p.SetStartCap(LineCapRound); //设置线帽,让线看起来更圆润

    p.SetEndCap(LineCapRound);

 

    g.SetSmoothingMode(SmoothingModeHighQuality); //抗锯齿

    g.DrawLine(p,Downx,Downy,x,y); //画线

    Downx:=x; //保存旧的坐标,留待下一次使用

    Downy:=y;

 

    p.Free; //对象释放

    g.Free;

  end;

 

 

end;

 

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

  flag:=0; //鼠标抬起了,标志置0,表示不再画图了

end;

 

end.

相关阅读 >>

Delphi中转向语句break,continue,exit的作用

Delphi listview中加载图片

Delphi 将汉字翻译成拼音缩写的函数

winapi 字符及字符串函数(11): lstrcpyn - 复制字符串, 同时指定要复制的长度

Delphi一个基于wininet的http操作小函数

Delphi 字符串中提取字母数字

Delphi xe ioutils 单元(1): 初识 tdirectory.getfiles

使用滑块实现图片的放大和缩小

Delphi xe6开发的android应用实现在线升级完成后自动安装apk代码(加说明)

Delphi 简单的日志记录

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...