大家注意到MSN的主窗体了吗,在改变大小时,窗体上的图案也会跟着缩放,这是怎么实现的啊? ( 积分: 200 )

  • 主题发起人 主题发起人 星期一
  • 开始时间 开始时间

星期一

Unregistered / Unconfirmed
GUEST, unregistred user!
另外,如何在控件,如PANEL、IMAGE、或者直接在窗体上画出过渡效果?
 
另外,如何在控件,如PANEL、IMAGE、或者直接在窗体上画出过渡效果?
 
窗体上的图案也会跟着缩放,是Align属性设置,可设置到紧贴窗体左,上,下,右或Client区域

你说的过渡效果是色彩渐变吗?
界面色彩渐变效果的实现
  界面色彩渐变效果是通过用渐变的画刷刷绘依次相邻的矩形块实现的。下面
列举实例说明:
  新建一个表单,假设其Width为500,设置一个按钮Button1,按此按钮将把表
单置为由左向右由黄变白的渐变效果。
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:Integer;
Dct:TRect;
begin
j:=Form1.height; //获得表单高度
for i:=0 to 255 do //此处设置RGB()中一个颜色值
begin
Canvas.Brush.Color:=RGB(255,255,i); //每次画矩形的画刷颜色
Dct:=Rect(i*2,0,(i+1)*2,j); //每次刷绘的矩形区域
Canvas.FillRect(Dct); //填充颜色
end;
end;

另一种方法:
procedure TForm1.FormPaint(Sender: TObject);
var
i:word;
dy,y:real;
begin
dy:=clientheight/256;
y:=0;
for i:=255 downto 0 do
begin
canvas.brush.color:=$00000000+i*$10000;
canvas.fillrect(rect(0,round(y),clientwidth,round(y+dy)));
y:=y+dy;
end;
end;
自己动手试一下吧,你还可以把$00000000,改成其他你喜欢的颜色。
 
设置ALIGN属性并不能根据窗体的大小调整图案的大小,特别是注意到MSN窗体缩放时,图案边缘的圆角依然存在,如果只是设置ALIGN属性,那么当窗体小于图案时,图案的超出部分就没了。

你的过渡方法当过渡区域较长时,会有明显的条纹,并不象MSN那样完美的过渡。
 
主窗体和窗体上的image的ALIGN都设置成alclient,还有autosize也可以调下,那样图片不是可以随窗口一起改变大小么
 
方法1:autosize=true
方法2:onresize
 
AUTOSIZE设为TRUE,图案会变形的,可是你们看到MSN窗体改变时,背景图案有变形吗?你们难道不能认真一点吗?
 
自己解决了,能不能把分收回啊
 
呵呵, 太财迷了
 
后退
顶部