网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.如何在启动机器时自动运行adsl拨.
.模拟进程调度(delphi写的).
.NeHe的opengl教程delphi版(7)---.
.win2000/xp/2003下不能关闭程序的.
.在Delphi中处理数据库日期型字段.
.如何将C/C++程序转译成Delphi(十).
.StatusBar有多个子栏时,如何确定.
.Delphi数据库编程教程(九).
.Delphi中的DLL封装和调用对象编写.
.Delphi背后---初学者参考之二(1).
.通用查询组件设计(续四).
.关于Msyql的事务.
.怎样屏蔽掉开始按钮?.
.如何制作帮助文件.
.检查RS232(串口)是否接有设备.
.Delphi制作带图标的弹出式选单.
.用hook实现dll注入详解.
.Delphi中创建MIDAS服务器并注册(.
.实现VirtualTree的Editor的功能定.
.金额大写转换.

对Delphi控件的一点改良(二)

发表日期:2006-2-4


 

如何在没有画布的控件上进行绘画呢?比如说Tpanel,他不具备画布的属性在上面写字画画都有困难。自己再把它包装一下吗?麻烦点吧!如何才能方便的进行处理呢?

看看这段代码

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  PanelCanvas: TCanvas;

begin
  PanelCanvas := TControlCanvas.Create;
  TControlCanvas(PanelCanvas).Control := Panel1;
  PanelCanvas.Brush.Style := bsClear;
  PanelCanvas.Pen.Color := clBlue;
  PanelCanvas.Rectangle(2, 2, Panel1.Width - 2, Panel1.Height - 2);
  PanelCanvas.Font.Name:='楷体_GB2312';
  PanelCanvas.Font.Size:=24;
  PanelCanvas.TextOut(Panel1.Width div 2,Panel1.Height div 2,'OK');
  PanelCanvas.Free;
end;

end.

当少量应用时可以这样处理。当然如果要当量应用在没有画布的控件上绘画就用以上的方法把原来的控件包装一下开发一个新的控件,会更方便一些。


上一篇:对Delphi控件的一点改良 人气:4684
下一篇:对Delphi控件的一点改良(三) 人气:3995
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐