zoukankan      html  css  js  c++  java
  • Delphi 在ListView中添加一个进度条

    // 相关定义
    Type
      TListData = Record
        FileName: String;
        Percent: Integer;
      End;
    
      PListData = ^TListData;
    
      // 需要Use CommCtrl
    Function GetSubItemRect(handle, ItemsIndex, SubIndex: Integer): TRect;
    Begin
      ListView_GetSubItemRect(handle, ItemsIndex, SubIndex, 0, @Result);
    End;
    
    Procedure TFormMain.lvw_listCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer;
      State: TCustomDrawState; Var DefaultDraw: Boolean);
    Var
      l_Rect: TRect;
      l_intPercent: Integer;
    Begin
      If SubItem = 3 Then
      Begin
        If Item.Data = Nil Then
          Exit;
        l_intPercent := PListData(Item.Data).Percent;
        // 获取ListView子项的Rect
        l_Rect := GetSubItemRect(Item.handle, Item.Index, SubItem);
        // 画一条外边框
        InflateRect(l_Rect, -1, -1);
        Sender.Canvas.Brush.Color := clBlack;
        Sender.Canvas.FrameRect(l_Rect);
        // 先填充底色
        InflateRect(l_Rect, -1, -1);
        Sender.Canvas.Brush.Color := lvw_list.Color;
        Sender.Canvas.FillRect(l_Rect);
        // 再根据进度画出完成区域
        If l_intPercent = 100 Then
          Sender.Canvas.Brush.Color := clGreen
        Else
          Sender.Canvas.Brush.Color := clPurple;
        l_Rect.Right := l_Rect.Left + Floor((l_Rect.Right - l_Rect.Left) * l_intPercent / 100);
        Sender.Canvas.FillRect(l_Rect);
        // 恢复笔刷
        Sender.Canvas.Brush.Color := lvw_list.Color;
        // 关键的一句,屏蔽系统自绘过程
        DefaultDraw := False;
      End;
    End;
    
    // 本文来自CSDN博客,转载请标明出处:http: //blog.csdn.net/kwbin/archive/2008/11/26/3381317.aspx

  • 相关阅读:
    pl/sql 导入csv到oracle时乱码问题
    mybatis if判断两个值是否相等存在的坑啊
    mybatis #与$占位符的区别
    NPM使用前设置和升级
    AWS ec2的ubuntu14.04上安装git服务
    Apache性能优化
    i5+GT730+B85安装OSX10.10.5 (Yosemite Install(14F27).cdr)
    IE的css hack
    sourcetree(mac)设置代理
    webpack配置的说明
  • 原文地址:https://www.cnblogs.com/wlmbz/p/3296970.html
Copyright © 2011-2022 走看看