您现在的位置:首页 >> 图形媒体 >> 图形媒体 >> 内容

Delphi画个空心效果的文字

时间:2011/9/3 15:02:52 点击:

  核心提示:以往,我们想得到空心字,一般都是使用华文彩云的字体或者用各种画图软件画出我们需要的效果,然后以图形的方式显示。 我今天在这里向大家展示一种用编程实现的方法。道理很简单。我们先得到要写的字的轮廓,然后...

以往,我们想得到空心字,一般都是使用华文彩云的字体或者用各种画图软件画出我们需要的效果,然后以图形的方式显示。

    我今天在这里向大家展示一种用编程实现的方法。道理很简单。我们先得到要写的字的轮廓,然后沿着轮廓划线,这样空心字就出来了。看看下面的程序吧。很简单,代码还不到十行就可以做完。

    以下程序在DELPHI6.0+Win ME下编程通过。

    unit Unit1;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

    type

    TForm1 = class(TForm)

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    {Private declarations} 

    public

    {Public declarations} 

    end;

    var

    Form1: TForm1;

    implementation

    {$R*.dfm}

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Canvas.Font.Name:= '幼圆';

    //如果考虑到通用性,最好选用True Type Font

    Canvas.Font.Size:= 72;

    Canvas.Font.Style:=[fsBold];//你可以选择其他方式,不过,粗体是必需的,这样效果才好

    BeginPath(Canvas.Handle); //准备得到Canvas上绘制的轮廓

    Canvas.TextOut(20,40,'我爱电脑报');

    EndPath(Canvas.Handle); //结束

    Canvas.Pen.Color:= clRed;

    StrokePath(Canvas.Handle); //将得到的轮廓画到Canvas上

    end;

    end.

效果如

不错吧。但是,外边怎么还有个方框?

    好吧,我们再来去掉它。在beginpath后加上一句

    SetBkMode(Canvas.Handle,TRANSPARENT); 

    这次好了吧?我们还可以做一些改进。比如说,我们可以在空心里填上其他的颜色。先设置好刷子,加上一句代码就可以了。

    Canvas.Brush.Color:=clYellow; //设置填充色

    再用StrokeAndFillPath函数来替换StrokePath函数

StrokeAndFillPath(canvas.handle);

作者:网络 来源:转载
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
本类推荐
  • 没有
本类固顶
  • 没有
  • 盒子文章(www.2ccc.com) © 2024 版权所有 All Rights Reserved.
  • 沪ICP备05001939号