3、中間銅柱子程序
本段程序是用來畫窗口中間的銅柱,只要給出不同的顏色RGB值就能畫出不同顏色的柱子。
procedure draw_sroll(Sender:TForm;X0,Y0,W,H,R,G,B,lw:integer);
var i,J,j1,J2,J3,m,X,Y,i1,i2: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
i1:=i;
i2:=i;
if h=0 then i1:=0;
if w=0 then i2:=0;
if i<m then j:=m-i else j:=i-m;
Canvas.pen.color:=rgb(R-J1*J,G-J2*J,BJ3*J);
canvas.moveTo(i1+X0,i2+Y0);
canvas.lineTo(i1+W+X0,i2+H+Y0);
end;
end;
end;
4、3D框制作子程序
本段程序是用來畫控件周圍的邊框,使該控件看起來有立體感,只要給出不同的顏色RGB值就能畫出不同顏色的邊框,ww是立體景深。
procedure draw_rect(Sender:TForm;X0,Y0,W,H,R,G,B,lw,ww,fg:integer);
var ii,i,J,j1,J2,J3,m:integer;
begin
J1:=R div lw-2;
J2:=G div lw;
J3:=B div lw+2;
m:=lw div 3;
if fg=1 then{fg=0 ê.°.}
begin
j1:=j1 div 2+(j1+2) div 3;
j2:=j2 div 2+(j2+2) div 3;
j3:=j3 div 2+(j3+2) div 3;
end;
with Sender do
begin
Canvas.Brush.Style:=bsClear;
for ii:=0 to lw do
begin
if fg=0 then
begin
i:=ii;
if i<m then j:=m-i else j:=i-m;
end
else i:=lw-ii;
j:=ii;
Canvas.pen.color:=rgb(R-J1*J,G-J2*J,B-J3*J);
canvas.RoundRect(i+X0-lw,i+Y0-lw,X0+W-i+lw, H+Y0-i+lw,ww,ww);
end;
end;
end;