ListView 百分比进度条(delphi版

在看代码之前先给大家附上效果图:

废话不多说了,直接给大家贴代码了。

unit Unit1;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ComCtrls,ImgList;
type
TForm1 = class(TForm)
btn1: TButton;
lv1: TListView;
trckbr1: TTrackBar;
il1: TImageList;
procedure lv1CustomDraw(Sender: TCustomListView; const ARect: TRect; var DefaultDraw: Boolean);
procedure lv1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
procedure btn1Click(Sender: TObject);
procedure trckbr1Change(Sender: TObject);
private
function ReDrawItem(HwndLV: HWND; ItemIndex: integer): boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
CommCtrl;
{$R *.dfm}
//画状态条
procedure DrawSubItem(LV: TListView; Item: TListItem; SubItem: Integer; Prosition: Single; Max,Style: Integer; IsShowProgress: Boolean; DrawColor: TColor = $00005B00; FrameColor: TColor = $00002F00);
//获取SubItem的区域
function GetItemRect(hWndLV: HWnd; iItem,iSubItem: Integer): TRect;
var
Rect: TRect;
begin
ListView_GetSubItemRect(hWndLV,iItem,iSubItem,@Rect);
Result := Rect;
end;
var
PaintRect,R: TRect;
i,iWidth,x,y: Integer;
S: string;
begin
with lv do
begin
PaintRect := GetItemRect(lv.Handle,Item.Index,SubItem);
R := PaintRect;
if Prosition >= Max then
Prosition := 100
else
begin
if Prosition <= 0 then
Prosition := 0
else
Prosition := Round((Prosition / MAX) * 100);
end;
if (Prosition = 0) and (not IsShowProgress) then
Canvas.FillRect(r) //如果是0 ,直接显示空白
else
begin
//先填充背景
Canvas.FillRect(r);
Canvas.Brush.Color := Color;
//画一个外框
InflateRect(R,-2,-2);
Canvas.Brush.Color := FrameColor;
Canvas.FrameRect(R);
Canvas.Brush.Color := Color;
InflateRect(R,-1,-1);
//InflateRect(R,-1);
//根据百分比计算出要花的进度条内容概述
iWidth := R.Right - Round((R.Right - R.Left) * ((100 - Prosition) / 100));
case Style of
0: //实心
begin
Canvas.Brush.Color := DrawColor;
R.Right := iWidth;
Canvas.FillRect(R);
end;
1: //竖线填充
begin
i := r.Left;
while i < iWidth do
begin
Canvas.Pen.Color := Color;
Canvas.MoveTo(i,R.Top);
Canvas.Pen.Color := DrawColor;
Canvas.LineTo(i,R.Bottom);
Inc(i,3);
end;
end;
end; //case end
//画好进度条后,现在要做的就是显示进度数字了
Canvas.Brush.Style := bsClear;
if Prosition = Round(Prosition) then
S := Format('%d%%',[Round(Prosition)])
else
S := FormatFloat('#0.0',Prosition);
with PaintRect do
begin
x := Left + (Right - Left + 1 - Canvas.TextWidth(S)) div 2;
y := Top + (Bottom - Top + 1 - Canvas.TextHeight(S)) div 2;
end;
SetBkMode(Canvas.Handle,TRANSPARENT);
Canvas.TextRect(PaintRect,y,S);
end;
//画完恢复
Canvas.Brush.Color := Color;
end;
end;
procedure TForm1.lv1CustomDraw(Sender: TCustomListView; const ARect: TRect; var DefaultDraw: Boolean);
begin
end;
//上面是画进度条的,现在要给TlistView处理Item重绘的消息,事件是OnCustomDrawItem,需要说明的是,如果想要随心所欲的自画Item,那么就要全部自己来完成,不再需要系统来处理:
procedure TForm1.lv1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
BoundRect,Rect: TRect;
i: integer;
TextFormat: Word;
LV: TListView; 
//这个子过程是用来画CheckBox和ImageList的
procedure Draw_CheckBox_ImageList(r: TRect; aCanvas: TCanvas; Checked: Boolean);
var
R1: TRect;
i: Integer;
begin
if Sender.Checkboxes then
begin
aCanvas.Pen.Color := clBlack;
aCanvas.Pen.Width := 2;
//画CheckBox外框
aCanvas.Rectangle(R.Left + 2,R.Top + 2,R.Left + 14,R.Bottom - 2);
if Checked then //画CheckBox的钩
begin
aCanvas.MoveTo(R.Left + 4,R.Top + 6);
aCanvas.LineTo(R.Left + 6,R.Top + 11);
aCanvas.LineTo(R.Left + 11,R.Top + 5);
end;
aCanvas.Pen.Width := 1;
end;
//开始画图标
i := 2; //ImageIndex的值,可以任意
if i > -1 then
begin
//获取图标的RECT
if Boolean(ListView_GetSubItemRect(sender.Handle,item.Index,LVIR_ICON,@R1)) then
begin
//ImageList_Stats.Draw(LV.Canvas,R1.Left,R1.Top,i);
if item.ImageIndex > -1 then
LV.SmallImages.Draw(LV.Canvas,R1.Right + 2,item.ImageIndex);
end;
end;
end;
begin
LV := TListView(Sender);
BoundRect := Item.DisplayRect(drBounds);
InflateRect(BoundRect,0);
//这个地方你可以根据自己的要求设置成想要的颜色,实现突出显示
LV.Canvas.Font.Color := clBtnText;
//查看是否被选中
if Item.Selected then
begin
if cdsFocused in State then
begin
LV.Canvas.Brush.Color := $00ECCCB9; // //clHighlight;
end
else
begin
LV.Canvas.Brush.Color := $00F8ECE5; //clSilver;
end;
end
else
begin
if (Item.Index mod 2) = 0 then
LV.Canvas.Brush.Color := clWhite
else
LV.Canvas.Brush.Color := $00F2F2F2;
end;
LV.Canvas.FillRect(BoundRect); // 初始化背景
for i := 0 to LV.Columns.Count - 1 do
begin
//获取SubItem的Rect
ListView_GetSubItemRect(LV.Handle,i,LVIR_LABEL,@Rect);
case LV.Columns[i].Alignment of
taLeftJustify:
TextFormat := DT_LEFT;
taRightJustify:
TextFormat := DT_RIGHT;
taCenter:
TextFormat := DT_CENTER;
else
TextFormat := DT_CENTER;
end;
case i of
0: //画Caption,0表示Caption,不是Subitem
begin
//先画选择框和图标
Draw_CheckBox_ImageList(BoundRect,LV.Canvas,Item.Checked);
//再画Caption的文字
InflateRect(Rect,-(5 + il1.Width),0); //向后移3个像素,避免被后面画线框时覆盖
//InflateRect(Rect,-(5),避免被后面画线框时覆盖
DrawText(LV.Canvas.Handle,PAnsiChar(Item.Caption),Length(Item.Caption),Rect,DT_VCENTER or DT_SINGLELINE or DT_END_ELLIPSIS or TextFormat);
end;
1..MaxInt: //画SubItem[i]
begin
if (i - 1) = 1 then //显示状态条,本示例是第三栏显示,可以随便定
begin
DrawSubItem(LV,Item,StrToFloatDef(Item.SubItems[i - 1],0),100,True);
end
else
begin
//画SubItem的文字
InflateRect(Rect,-2);
if i - 1 <= Item.SubItems.Count - 1 then
DrawText(LV.Canvas.Handle,PCHAR(Item.SubItems[i - 1]),Length(Item.SubItems[i - 1]),DT_VCENTER or DT_SINGLELINE or DT_END_ELLIPSIS or TextFormat);
end;
end;
end; //end case
end; //end for
LV.Canvas.Brush.Color := clWhite;
if Item.Selected then //画选中条外框
begin
if cdsFocused in State then//控件是否处于激活状态
LV.Canvas.Brush.Color := $00DAA07A // $00E2B598; //clHighlight;
else
LV.Canvas.Brush.Color := $00E2B598; //$00DAA07A // clHighlight;
LV.Canvas.FrameRect(BoundRect); //
end;
DefaultDraw := False; //不让系统画了
with Sender.Canvas do
if Assigned(Font.OnChange) then
Font.OnChange(Font);
end;
function TForm1.ReDrawItem(HwndLV: HWND; ItemIndex: integer): boolean;
begin
Result := ListView_RedrawItems(HwndLV,ItemIndex,ItemIndex);
end;
procedure TForm1.btn1Click(Sender: TObject);
var
Item: TListItem;
begin
//使用:
item := LV1.Items[1];
if Item = nil then
Exit;
item.subitems[1] := '30'; //设置为30%
//然后刷新这个item
ReDrawItem(LV1.handle,Item.Index);
end;
procedure TForm1.trckbr1Change(Sender: TObject);
var
Item: TListItem;
begin
//使用:
item := LV1.Items[0];
item.subitems[1] := IntToStr(trckbr1.Position);
//然后刷新这个item
ReDrawItem(LV1.handle,Item.Index);
end;
end. 

object Form1: TForm1
Left = 416
Top = 301
Width = 494
Height = 170
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object btn1: TButton
Left = 272
Top = 96
Width = 75
Height = 25
Caption = 'btn1'
TabOrder = 0
OnClick = btn1Click
end
object lv1: TListView
Left = 16
Top = 8
Width = 457
Height = 81
Columns = <
item
Caption = '名称'
Width = 100
end
item
Caption = '分类'
Width = 100
end
item
Caption = '进度'
Width = 100
end
item
Caption = '资源'
Width = 100
end>
GridLines = True
Items.Data = {
5B000000020000000200000000000000FFFFFFFF020000000000000006B4F3B8
BBCECC04D3CECFB70333354D01000000FFFFFFFFFFFFFFFF0200000000000000
08446F7461B4ABC6E604D3CECFB7043130304DFFFFFFFFFFFFFFFF}
ShowWorkAreas = True
SmallImages = il1
TabOrder = 1
ViewStyle = vsReport
OnCustomDrawItem = lv1CustomDrawItem
end
object trckbr1: TTrackBar
Left = 16
Top = 96
Width = 233
Height = 33
Max = 100
TabOrder = 2
OnChange = trckbr1Change
end
object il1: TImageList
Left = 384
Top = 96
Bitmap = {
494C010103000F00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
0000000000003600000028000000400000004000000001002000000000000040
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600004D4D
4D00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600004D4D
4D00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600004D4D
4D00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600004D4D
4D00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000066
00004D4D4D004D4D4D0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000066
00004D4D4D004D4D4D0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000066
00004D4D4D004D4D4D0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000066
00004D4D4D004D4D4D0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000D90
1A00026F0400165D0E004D4D4D00000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000D90
1A00026F0400165D0E004D4D4D00000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000D90
1A00026F0400165D0E004D4D4D00000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000D90
1A00026F0400165D0E004D4D4D00000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000066000014A0
270016AB2B0007840F00056303004D4D4D004D4D4D0000000000000000000000
00000000000000000000000000000000000000000000000000000066000014A0
270016AB2B0007840F00056303004D4D4D004D4D4D0000000000000000000000
00000000000000000000000000000000000000000000000000000066000014A0
270016AB2B0007840F00056303004D4D4D004D4D4D0000000000000000000000
00000000000000000000000000000000000000000000000000000066000014A0
270016AB2B0007840F00056303004D4D4D004D4D4D0000000000000000000000
00000000000000000000000000000000000000000000000000000066000019A5
32001CB5360017B02D000C951700016A02001A5C11004D4D4D00000000000000
00000000000000000000000000000000000000000000000000000066000019A5
32001CB5360017B02D000C951700016A02001A5C11004D4D4D00000000000000
00000000000000000000000000000000000000000000000000000066000019A5
32001CB5360017B02D000C951700016A02001A5C11004D4D4D00000000000000
00000000000000000000000000000000000000000000000000000066000019A5
32001CB5360017B02D000C951700016A02001A5C11004D4D4D00000000000000
0000000000000000000000000000000000000000000000000000006600001FAB
3D0022BB44001CB5360017B02D000FA51E0003790600096105004D4D4D000000
0000000000000000000000000000000000000000000000000000006600001FAB
3D0022BB44001CB5360017B02D000FA51E0003790600096105004D4D4D000000
0000000000000000000000000000000000000000000000000000006600001FAB
3D0022BB44001CB5360017B02D000FA51E0003790600096105004D4D4D000000
0000000000000000000000000000000000000000000000000000006600001FAB
3D0022BB44001CB5360017B02D000FA51E0003790600096105004D4D4D000000
00000000000000000000000000000000000000000000000000000066000023B0
460029C2520022BB44001CB5360017B02D000FA91F0005880B00016A01004D4D
4D004D4D4D0000000000000000000000000000000000000000000066000023B0
460029C2520022BB44001CB5360017B02D000FA91F0005880B00016A01004D4D
4D004D4D4D0000000000000000000000000000000000000000000066000023B0
460029C2520022BB44001CB5360017B02D000FA91F0005880B00016A01004D4D
4D004D4D4D0000000000000000000000000000000000000000000066000023B0
460029C2520022BB44001CB5360017B02D000FA91F0005880B00016A01004D4D
4D004D4D4D0000000000000000000000000000000000000000000066000026B3
4D0030C9600029C2520022BB44001CB5360017B02D000FA91F00089B10000271
030011610B004D4D4D00000000000000000000000000000000000066000026B3
4D0030C9600029C2520022BB44001CB5360017B02D000FA91F00089B10000271
030011610B004D4D4D00000000000000000000000000000000000066000026B3
4D0030C9600029C2520022BB44001CB5360017B02D000FA91F00089B10000271
030011610B004D4D4D00000000000000000000000000000000000066000026B3
4D0030C9600029C2520022BB44001CB5360017B02D000FA91F00089B10000271
030011610B004D4D4D00000000000000000000000000000000000066000027B3
4D0033CC660030C9600029C2520022BB44001CB5360017B02D000EA41D00037D
0600066404004D4D4D00000000000000000000000000000000000066000027B3
4D0033CC660030C9600029C2520022BB44001CB5360017B02D000EA41D00037D
0600066404004D4D4D00000000000000000000000000000000000066000027B3
4D0033CC660030C9600029C2520022BB44001CB5360017B02D000EA41D00037D
0600066404004D4D4D00000000000000000000000000000000000066000027B3
4D0033CC660030C9600029C2520022BB44001CB5360017B02D000EA41D00037D
0600066404004D4D4D0000000000000000000000000000000000006600002DB9
530035CE680033CC660030C9600029C2520022BB440015A12800036F0500165D
0E00000000000000000000000000000000000000000000000000006600002DB9
530035CE680033CC660030C9600029C2520022BB440015A12800036F0500165D
0E00000000000000000000000000000000000000000000000000006600002DB9
530035CE680033CC660030C9600029C2520022BB440015A12800036F0500165D
0E00000000000000000000000000000000000000000000000000006600002DB9
530035CE680033CC660030C9600029C2520022BB440015A12800036F0500165D
0E000000000000000000000000000000000000000000000000000066000032BE
58003CD56F0035CE680033CC660030C960001494280005630300000000000000
00000000000000000000000000000000000000000000000000000066000032BE
58003CD56F0035CE680033CC660030C960001494280005630300000000000000
00000000000000000000000000000000000000000000000000000066000032BE
58003CD56F0035CE680033CC660030C960001494280005630300000000000000
00000000000000000000000000000000000000000000000000000066000032BE
58003CD56F0035CE680033CC660030C960001494280005630300000000000000
00000000000000000000000000000000000000000000000000000066000036C2
5C0043DC76003CD56F002BBB55000A7913000F5F090000000000000000000000
00000000000000000000000000000000000000000000000000000066000036C2
5C0043DC76003CD56F002BBB55000A7913000F5F090000000000000000000000
00000000000000000000000000000000000000000000000000000066000036C2
5C0043DC76003CD56F002BBB55000A7913000F5F090000000000000000000000
00000000000000000000000000000000000000000000000000000066000036C2
5C0043DC76003CD56F002BBB55000A7913000F5F090000000000000000000000
0000000000000000000000000000000000000000000000000000006600003DC9
630049E27C0025A84200046D07002D581E000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600003DC9
630049E27C0025A84200046D07002D581E000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600003DC9
630049E27C0025A84200046D07002D581E000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600003DC9
630049E27C0025A84200046D07002D581E000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600003CC5
5F00158721000961050000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600003CC5
5F00158721000961050000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600003CC5
5F00158721000961050000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600003CC5
5F00158721000961050000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000066
0000245E19000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000066
0000245E19000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000066
0000245E19000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000066
0000245E19000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000660000245E
1900000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000660000245E
1900000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000660000245E
1900000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000660000245E
1900000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000BA877700CE7E6200D07E5D00D07E
5D00CE7E6200C396880000000000000000000000000000000000006600004D4D
4D00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600004D4D
4D00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000B7A5A2008D6F6A008D6F6A008D6F6A008D6F6A00A28A
8600BFAEAB000000000000000000000000000000000000000000000000000000
0000000000000000000000000000CF795600EDB18D00F3BC9900F1BA9600F0B7
9400F0B79400E5A07D00CA715200000000000000000000000000006600000066
00004D4D4D004D4D4D0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000066
00004D4D4D004D4D4D0000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000C5B6
B4009B817C0093757000B8979100DDB9B200C09E9800BD9E9800BD9D9700AA8B
850091746F008D6F6A0000000000000000000000000000000000000000000000
00000000000000000000CD795D00F1A77B00EFA47800EDA07400EB9B7000DA83
5D00DD886000E4906600DA835D00E4BAAC000000000000000000006600000D90
1A00026F0400165D0E004D4D4D00000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000006600000D90
1A00026F0400165D0E004D4D4D00000000000000000000000000000000000000
00000000000000000000000000000000000000000000A9928E008D6F6A00AA8B
8500D1AEA700F0CAC200F0CAC200F0CAC200E9C7C100F3D3CC00F3D3CC00F0CA
C200D6B3AC008D6F6A00000000000000000000000000000000005D9D5F003B9E
3500409F33003B9E3500C06F4400F4A17000F19C6C00ED956600E2875A00C56A
4D00D06E4700E2845600E2845600E1B3A50000000000000000000066000014A0
270016AB2B0007840F00056303004D4D4D004D4D4D0000000000000000000000
00000000000000000000000000000000000000000000000000000066000014A0
270016AB2B0007840F00056303004D4D4D004D4D4D0000000000000000000000
00000000000000000000000000000000000000000000997A7500EAC4BD00F0CA
C200F0CAC200F0CAC200F0CAC200F0CAC200EBCBC600F4D7D100F3D3CC00F3D3
CC00D6B3AC008D6F6A000000000000000000000000002395240061B9510074C2
5F007AC9690080CF7200B47A4900F9AA7800F4A17000F19C6C00CA715200E7C7
C100CB6A4700E88D5E00DF805500E6C0B40000000000000000000066000019A5
32001CB5360017B02D000C951700016A02001A5C11004D4D4D00000000000000
00000000000000000000000000000000000000000000000000000066000019A5
32001CB5360017B02D000C951700016A02001A5C11004D4D4D00000000000000
00000000000000000000000000000000000000000000A6868000F0CAC200F0CA
C200F0CAC200F0CAC200F0CAC200F0CAC200D6B3AC00C5ADA900CDB5B000D7BD
B700BD9E98008D6F6A000000000000000000000000000B99170018AB29000B93
15001BA52A0033C850007A934700EC986A00F9AA7800D0734E00ECD0C800F4E7
E500CE7E6200ED956600D3734B00000000000000000000000000006600001FAB
3D0022BB44001CB5360017B02D000FA51E0003790600096105004D4D4D000000
0000000000000000000000000000000000000000000000000000006600001FAB
3D0022BB44001CB5360017B02D000FA51E0003790600096105004D4D4D000000
00000000000000000000000000000

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件的解析。本文会介绍CsvHelper、TextFieldParser、正则表达式三种解析CSV文件的方法,顺带也会介绍一下CSV文件的写方法。 CSV文件标准 在介绍CSV文件的读写方法前,我们需要了解一下CSV文件的格式。 文件示例 一
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的人能快速转入Halcon平台下,通过文中的示例开发者能快速了解一个Halcon项目开发的基本步骤,让开发者能把精力完全集中到算法的开发上面。 首先,你需要安装Halcon,HALCON 18.11.0.1的安装包会放在文章末尾。安装包分开发和
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期使用。 设置dll路径 参考C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁中间的 方法一:配置App.config文件的privatePath : &lt;runtime&gt; &lt;assemblyBinding xml
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——NET的流行高性能JSON框架,当然也可以使用.NET自带的 System.Text.Json(.NET5)、DataContractJsonSerializer、JavaScriptSerializer(不推荐)。
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。&#xA;EventBus维护一个事件的字典,发布者、订阅者在事件总线中获取事件实例并执行发布、订阅操作,事件实例负责维护、执行事件处理程序。
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api/trans/vip/translate,使用方法参考通用翻译API接入文档 。&#xA;请求方式可使用 GET 或 POST 方式(Content-Type 请指定为:application/x-www-for
词云”由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于2006年最先使用,是通过形成“关键词云层”或“关键词渲染”,对文本中出现频率较高的“关键词”的视觉上的突出。词云图过滤掉大量的文本信息,使浏览者只要一眼扫过文本就可以领略文本的主旨。&#xA;网上大部分文章介绍的是使用P
微软在.NET中对串口通讯进行了封装,我们可以在.net2.0及以上版本开发时直接使用SerialPort类对串口进行读写操作。&#xA;为操作方便,本文对SerialPort类做了一些封装,暂时取名为**SerialPortClient**。
简介 管道为进程间通信提供了平台, 管道分为两种类型:匿名管道、命名管道,具体内容参考.NET 中的管道操作。简单来说,匿名管道只能用于本机的父子进程或线程之间,命名管道可用于远程主机或本地的任意两个进程,本文主要介绍命名管道的用法。 匿名管道在本地计算机上提供进程间通信。 与命名管道相比,虽然匿名
目录自定义日志类NLog版本的日志类Serilog版本的日志类 上个月换工作,新项目又要重新搭建基础框架,把日志实现部分单独记录下来方便以后参考。 自定义日志类 代码大部分使用ChatGPT生成,人工进行了测试和优化,主要特点: 线程安全,日志异步写入文件不影响业务逻辑 支持过期文件自动清理,也可自
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机自动启动的两种常用方法](https://blog.csdn.net/weixin_42288432/article/details/120059296),将里面中的第一种方法做了封装成**AutoStart**类,使
简介 FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。 FTP
使用特性,可以有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,可以在运行时使用反射这项技术查询特性。&#xA;在 C# 中,通过用方括号 ([]) 将特性名称括起来,并置于应用该特性的实体的声明上方以指定特性。
# 简介 主流的识别库主要有ZXing.NET和ZBar,OpenCV 4.0后加入了QR码检测和解码功能。本文使用的是ZBar,同等条件下ZBar识别率更高,图片和部分代码参考[在C#中使用ZBar识别条形码](https://www.cnblogs.com/w2206/p/7755656.htm
C#中Description特性主要用于枚举和属性,方法比较简单,记录一下以便后期使用。 扩展类DescriptionExtension代码如下: using System; using System.ComponentModel; using System.Reflection; /// &lt;
本文实现一个简单的配置类,原理比较简单,适用于一些小型项目。主要实现以下功能:保存配置到json文件、从文件或实例加载配置类的属性值、数据绑定到界面控件。&#xA;一般情况下,项目都会提供配置的设置界面,很少手动更改配置文件,所以选择以json文件保存配置数据。
前几天用SerialPort类写一个串口的测试程序,关闭串口的时候会让界面卡死。网上大多数方法都是定义2个bool类型的标记Listening和Closing,关闭串口和接受数据前先判断一下。我的方法是DataReceived事件处理程序用this.BeginInvoke()更新界面,不等待UI线程
约束告知编译器类型参数必须具备的功能。 在没有任何约束的情况下,类型参数可以是任何类型。 编译器只能假定 System.Object 的成员,它是任何 .NET 类型的最终基类。 如果客户端代码使用不满足约束的类型,编译器将发出错误。 通过使用 where 上下文关键字指定约束。&#xA;最常用的泛型约束为
protobuf-net是用于.NET代码的基于契约的序列化程序,它以Google设计的“protocol buffers”序列化格式写入数据,适用于大多数编写标准类型并可以使用属性的.NET语言。&#xA;protobuf-net可通过NuGet安装程序包,也可直接访问github下载源码:https:/
工作中经常遇到需要实现TCP客户端或服务端的时候,如果每次都自己写会很麻烦且无聊,使用SuperSocket库又太大了。这时候就可以使用SimpleTCP了,当然仅限于C#语言。&#xA;SimpleTCP是一个简单且非常有用的 .NET 库,用于处理启动和使用 TCP 套接字(客户端和服务器)的重复性任务