Delphi类qq的程序界面实例               
Delphi类qq的程序界面实例
 实例说明
     一般程序都是以菜单栏和工具栏的形式调用其他功能模块的,如果以动态的类qq的程序界面来调用其他模块将会给用户一种新鲜的感觉,使用户对软件更感兴趣。效果如图1.15所示。
 
 技术要点
     本实例主要使用TPanel组件来完成布局,使用TListView组件来显示带图标的功能菜单。TListView组件的常用属性及说明如下:
 Items: 使用该属性可直接访问表示列表中项目的TListItem对象。
 Selected:使用该属性可访问列表中第1个所选项的属性。SelCount属性为0时,该属性为空;大于1时,后来选择的项通过GetNextItem方法查找项目的Selected属性定位。
 实现过程
 1.新建一个工程,该工程会自动创建一个主窗体,默认命名为Form1.
 2.在窗体上添加TPanel、TlistView和TImageList组件。设置TListView组件的ImageList属性为TImageList组件。
 3.程序代码如下:
 procedure TForm1.Panel2Click(Sender: TObject);
 var
   newitem:Tlistitem;
 begin
   panel_click(sender);
   newitem:=Tlistitem.Create(nil);
   Listview1.Clear;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′one′;
   newitem.ImageIndex:=2;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′two′;
   newitem.ImageIndex:=3;
 end;
 procedure TForm1.panel_click(Sender: TObject);
 var
   i:integer;
 begin
   for i:=0 to self.ComponentCount-1 do
   begin
     if (self.Components[i] is TPanel) then
     begin
       if (Tpanel(self.Components[i]).Tag>0) and (Tpanel(self.Components[i]).Tag<5) then
       begin
         if Tpanel(self.Components[i]).Tag=Tpanel(sender).Tag then
           Tpanel(self.Components[i]).Align:=alTop
         else
           Tpanel(self.Components[i]).Align:=alBottom;
       end;
     end;
   end;
 end;
 procedure TForm1.Panel3Click(Sender: TObject);
 var
   newitem:Tlistitem;
 begin
   panel_click(sender);
   newitem:=Tlistitem.Create(nil);
   Listview1.Clear;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′three′;
   newitem.ImageIndex:=4;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′four′;
   newitem.ImageIndex:=5;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′AA′;
   newitem.ImageIndex:=9;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′BB′;
   newitem.ImageIndex:=10;
 end;
 procedure TForm1.Panel4Click(Sender: TObject);
 var
   newitem:Tlistitem;
 begin
   panel_click(sender);
   newitem:=Tlistitem.Create(nil);
   Listview1.Clear;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′sever′;
   newitem.ImageIndex:=6;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′six′;
   newitem.ImageIndex:=7;
 end;
 procedure TForm1.Panel5Click(Sender: TObject);
 var
   newitem:Tlistitem;
 begin
   panel_click(sender);
   newitem:=Tlistitem.Create(nil);
   Listview1.Clear;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′eleven′;
   newitem.ImageIndex:=8;
   newitem:= Listview1.Items.Add;
   newitem.Caption:=′twice′;
   newitem.ImageIndex:=9;
 end;
 procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
 var
   point:Tpoint;
 begin
  if (button=mbRight) and (Listview1.Selected<>nil ) then
  begin
    GetCursorPos(point);
    PopupMenu1.Popup(point.X,point.Y);
  end;
 end;
 end.