Delphi类似Windows xp的程序界面               
Delphi类似Windows xp的程序界面
 实例说明
     在Windows XP环境下打开控制面板,会发现左侧的导航界面很实用。双击展开按钮,导航栏功能显示出来,双击收缩按钮,导航按钮收缩。下面通过实例介绍此种主窗体的设计方法。运行本例,效果如图1.16所示。
 
 图1.16类似Windows XP的程序界面
 技术要点
     TImage组件是一个图像显示组件,该组件主要以其中的Picture对象存储图像数据。Picture对象中的Bitmap对象用以存储位图格式的图像。Graphic对象用于存储JPG图像数据。使用该对象可以实现JPG到BMP文件的转换。
     首先用TImage组件Picture对象的LoadFromFile方法,将JPG文件载入程序,然后动态建立一个TImage组件,用该组件中Bitmap对象的Assign方法复制Graphics对象中存储的数据。这样就完成了图像转换,最后保存转换后的图像。
 实现过程
 1.新建一个标准工程,创建一个新窗体,默认窗体的Name属性为Form1.
 2.在窗体上添加TPanel、Timage和TLabel组件。
 3.相关组件的主要属性如下表1.5所示。
  
 
 
 表1.5   主要组件的属性设置
 4.主要程序代码如下:
 procedure TForm1.FormShow(Sender: TObject);
 begin
   p1 := 1;
   p2 := 1;
   p3 := 1;
 end;
 procedure TForm1.Image2Click(Sender: TObject);
 var
   i,n,h : integer;
 begin
   if (p1=1) then
   begin
     image7.Picture.LoadFromFile(′2朝上按钮.jpg′);
     h := panel3.Height;
     panel3.Height := panel3.Height - 20;
     for i := 0 to 3 do
     begin
       panel3.Height := panel3.Height - 20;
       label1.Top := label1.Top-20;
       panel4.Top := panel4.Top-20;
       panel5.Top := panel5.Top-20;
       label2.Top := label2.Top-20;
       panel6.Top := panel6.Top-20;
       panel7.Top := panel7.Top-20;
     end;
     p1 := p1+1;
   end
   else
   begin
     image7.Picture.LoadFromFile(′2朝下按钮.jpg′);
     for i := 0 to 3 do
     begin
       panel3.Height := panel3.Height + 20;
       label1.Top := label1.Top+20;
       panel4.Top := panel4.Top+20;
       panel5.Top := panel5.Top+20;
       label2.Top := label2.Top+20;
       panel6.Top := panel6.Top+20;
       panel7.Top := panel7.Top+20;
     end;
     p1 := p1-1;
   end;
 end;
 procedure TForm1.Image3Click(Sender: TObject);
 var
   h,i : integer;
 begin
   if (p2=1) then
   begin
     image3.Picture.LoadFromFile(′2朝上按钮.jpg′);
     h := panel5.Height;
     panel5.Height := panel5.Height - 20;
     for i := 0 to 3 do
     begin
       panel5.Height := panel5.Height - 20;
       label2.Top := label2.Top-20;
       panel6.Top := panel6.Top-20;
       panel7.Top := panel7.Top-20;
     end;
     p2 := p2+1;
   end
   else
   begin
     image3.Picture.LoadFromFile(′2朝下按钮.jpg′);
     for i := 0 to 3 do
     begin
       panel5.Height := panel5.Height + 20;
       label2.Top := label2.Top+20;
       panel6.Top := panel6.Top+20;
       panel7.Top := panel7.Top+20;
     end;
     p2 := p2-1;
   end;
 end;