当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: (* ———————————————原理:———————————————— 对于任何一种线性渐变(就是最常见的那种),在由起点和终点定义的渐变区 内,像素的RGB分量对于X和Y坐标的偏导数都是常量。
 

 

    摘要:为什么windows的系统菜单总是一成不变?这个例子教你如何往系统菜单添加一个菜单项如about或information等。 这个例子将一个菜单项加到系统菜单中去。我们需要两个东西,一个是项名,这可以是如何整数;我们还需要一个程序去收取windows对确认点击我们创建的菜单项的信息。 unit ohyeah; interface uses sysutils, wintypes, w......
 ·win32 api 使用的特殊情况    »显示摘要«
    摘要: 我个人认为,delphi 是当今最好的 windows 可视化开发工具。 其种种特点令开发如虎添翼。但要想发挥出 delphi 真正的内含性能 比如开发控件,实现一些特殊的功能,就必须直接调用 win32 api。 win32 api 主要包含在 windows95/98/nt/2k 的系统动态连接库中 如 kernel32.dll、user32.dll、gdi32.dll、shell32.dl......


delphi中一个画渐变的方法
(*

———————————————原理:———————————————— 【程序编程相关:数据过滤技术在Delphi中的使用

【推荐阅读:用Delphi创建Internet快捷方

对于任何一种线性渐变(就是最常见的那种),在由起点与终点定义的渐变区 【扩展信息:使用Delphi启动和关闭外部应用程序

内,像素的rgb分量对于x与y坐标的偏导数都是常量.于是我们可以先用极小

的代价来计算出这个二元方程的初始值,然后使用累加递推的方法计算出所有

的值.

———————————————注 1:————————————————

渐变区:由分别经过起点与终点,并垂直于这两点连线的平行直线与绘图区域

的边界围成的区域.在这个区域以外的像素不再有渐变.

———————————————注 2:————————————————

为了简化编程,我使用了浮点数来进行累加计算.实际上可以先用移位操作来

“放大”颜色值以提高累加时的精度,写入位图时再用移位“缩小”来恢复实

际的值.

———————————————测试:————————————————

该方法在delphi6下调试通过.在duron800,1152 x 864下采取重回1000次取

平均值的方法测试.

100 x 100:平均为4ms;

500 x 200:平均为18ms;

(我同时还在听mp3:p)

*)

function ssdrawgradient(acanvas: tcanvas; acliprect: trect;

frompoint, topoint: tpoint; fromcolor, tocolor: tcolor): boolean;

type

tssgradientdirection=(gdeast, gdwest, gdnorth, gdsouth, gdother);

var

buf:tbitmap;

w,h,y,x,xoffset,ir,ig,ib,pw,ph:integer;

c1, c2: tcolor;

r1,g1,b1,r2,g2,b2,br,bg,bb,rmax,rmin,gmax,gmin,bmax,bmin: byte;


...   下一页
 ·收藏夹函数     »显示摘要«
    摘要:dll 文件:shdocvw.dll procedure doorganizefavdlg(h:hwnd;path:pchar);stdcall;external shdocvw.dll; 第二个参数指定收藏夹的位置,如果第二个参数为nil的话,默认ie得收藏夹位置。 addurltofavorites doaddtofavdlg doaddtofavdlgw dofiledownlo......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE