Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14490579
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:50:09

下载本文示例代码
  本文论述了用Delphi进行图形界面修饰的技术,给出了窗口渐变色背景、3D边界、3D边框的实现源代码和一个软件界面的实例。  作为一个程序员,在开发程序的时候,都希望自己程序的界面美观一些,与众不同一些,有自己鲜明的特色,这需要美化自己的界面。一般的方法是用图形工具制作一个图形界面,再经过简单的编程便可获得一个理想的效果,很多能够界面换肤的程序大多也基于这种思想;但程序员一般不精通图形制作工具,请外面的美工来做也不方便,其实对一般的3D效果,我们自己也可用程序做。  编程方式实现3D效果的方法  为了改变电脑早期时候的文字界面的单一状况,各大软件公司都作出了不懈努力,先后推出了作为图形处理工业标准的OpenGL和微软研发的Direct3D,至于一些公司自用的3D技术更是不计其数。但本文提出的方法不需要上面大公司的技术,纯粹用Delphi的基本函数来实现比较逼真的3D效果。  我以前作过一个卡拉OK电脑点歌程序,点歌方式有多种,其中有一种传统的点歌方式叫编码点歌,它需要在屏幕上画一个点歌键盘,用鼠标点击键盘(触摸屏时用手触摸)输入歌曲编码,其界面如下图所示:   上图中除了迎客松的图片外,其它如背景、铜柱边框、3D键盘等都是由程序实现的,下面我对实现程序予以简单说明,上图界面的完整实现请看本文附带的源程序。  在给出程序之前先说一下技术思想,Delphi中有些对象具有画布属性Canvas,它本身也是一个对象,它具有很多属性和方法,这里只列出本文用到的几个。 Canvas.Brush.Style:=bsClear;//设置画刷风格 Canvas.pen.color:=rgb(R,G,B);// 设置画笔颜色 Canvas.pen.style:=psSolid;// 设置画笔风格 Canvas.pen.width:=1;//设置画笔宽度 procedure MoveTo(X, Y: Integer); //将画笔移到坐标(X, Y) 处作为画画的起点 procedure LineTo(X, Y: Integer); //从当前位置画一条直线到坐标(X, Y) 处 procedure RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer); //根据给定的参数画一个圆角矩形,X3、Y3用于确定圆角大小  下面给出3D效果制作子程序:   1、 背景制作子程序  本段程序是用来画背景,只要给出不同的颜色RGB值就能画出不同的背景。下面的子程序都是利用对象的画布Canvas并按一定的算法来生成效果。 procedure draw_bk(Sender:TForm;R,G,B:integer); var i,j,k:integer; begin  with Sender do begin  canvas.pen.style:=psSolid;  canvas.pen.width:=1;  k:=(B div 3)*2;  for i:=0 to 480 do  begin   if iB then j:=B;   Canvas.pen.color:=rgb(R,G,B-j);   canvas.moveTo(0,i);   canvas.lineTo(640,i);  end; end; end;   2、 边框周围铜柱子程序  本段程序是用来画窗口周围的铜柱,只要给出不同的颜色RGB值就能画出不同颜色的柱子。 procedure draw_roll(Sender:TForm;X0,Y0,W,H,R,G,B,lw:integer);  var i,J,j1,J2,J3,m,X,Y:integer;  begin   J1:=R div lw-2;   J2:=G div lw;   J3:=B div lw 2;   m:=lw div 3;   with Sender do   begin    for i:=0 to lw do    begin     if i   本文论述了用Delphi进行图形界面修饰的技术,给出了窗口渐变色背景、3D边界、3D边框的实现源代码和一个软件界面的实例。  作为一个程序员,在开发程序的时候,都希望自己程序的界面美观一些,与众不同一些,有自己鲜明的特色,这需要美化自己的界面。一般的方法是用图形工具制作一个图形界面,再经过简单的编程便可获得一个理想的效果,很多能够界面换肤的程序大多也基于这种思想;但程序员一般不精通图形制作工具,请外面的美工来做也不方便,其实对一般的3D效果,我们自己也可用程序做。  编程方式实现3D效果的方法  为了改变电脑早期时候的文字界面的单一状况,各大软件公司都作出了不懈努力,先后推出了作为图形处理工业标准的OpenGL和微软研发的Direct3D,至于一些公司自用的3D技术更是不计其数。但本文提出的方法不需要上面大公司的技术,纯粹用Delphi的基本函数来实现比较逼真的3D效果。  我以前作过一个卡拉OK电脑点歌程序,点歌方式有多种,其中有一种传统的点歌方式叫编码点歌,它需要在屏幕上画一个点歌键盘,用鼠标点击键盘(触摸屏时用手触摸)输入歌曲编码,其界面如下图所示:   上图中除了迎客松的图片外,其它如背景、铜柱边框、3D键盘等都是由程序实现的,下面我对实现程序予以简单说明,上图界面的完整实现请看本文附带的源程序。  在给出程序之前先说一下技术思想,Delphi中有些对象具有画布属性Canvas,它本身也是一个对象,它具有很多属性和方法,这里只列出本文用到的几个。 Canvas.Brush.Style:=bsClear;//设置画刷风格 Canvas.pen.color:=rgb(R,G,B);// 设置画笔颜色 Canvas.pen.style:=psSolid;// 设置画笔风格 Canvas.pen.width:=1;//设置画笔宽度 procedure MoveTo(X, Y: Integer); //将画笔移到坐标(X, Y) 处作为画画的起点 procedure LineTo(X, Y: Integer); //从当前位置画一条直线到坐标(X, Y) 处 procedure RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer); //根据给定的参数画一个圆角矩形,X3、Y3用于确定圆角大小  下面给出3D效果制作子程序:   1、 背景制作子程序  本段程序是用来画背景,只要给出不同的颜色RGB值就能画出不同的背景。下面的子程序都是利用对象的画布Canvas并按一定的算法来生成效果。 procedure draw_bk(Sender:TForm;R,G,B:integer); var i,j,k:integer; begin  with Sender do begin  canvas.pen.style:=psSolid;  canvas.pen.width:=1;  k:=(B div 3)*2;  for i:=0 to 480 do  begin   if iB then j:=B;   Canvas.pen.color:=rgb(R,G,B-j);   canvas.moveTo(0,i);   canvas.lineTo(640,i);  end; end; end;   2、 边框周围铜柱子程序  本段程序是用来画窗口周围的铜柱,只要给出不同的颜色RGB值就能画出不同颜色的柱子。 procedure draw_roll(Sender:TForm;X0,Y0,W,H,R,G,B,lw:integer);  var i,J,j1,J2,J3,m,X,Y:integer;  begin   J1:=R div lw-2;   J2:=G div lw;   J3:=B div lw 2;   m:=lw div 3;   with Sender do   begin    for i:=0 to lw do    begin     if i 下载本文示例代码


Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术Delphi编程实现3D图形修饰技术
阅读(292) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~