📄 unittransfers.pas
字号:
unit UnitTransfers;
interface
uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
ComCtrls,
ExtCtrls,
Sockets;
type
TTransfers = class(TForm)
ListView1: TListView;
Timer1: TTimer;
Timer2: TTimer;
procedure ListView1CustomDraw(Sender: TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
procedure FormResize(Sender: TObject);
procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Transfers: TTransfers;
implementation
{$R *.dfm}
procedure TTransfers.ListView1CustomDraw(Sender: TCustomListView;
const ARect: TRect; var DefaultDraw: Boolean);
var
ProgressBar: TProgressBar;
Rect: TRect;
iLoop, iColumnLoop: Integer;
begin
DefaultDraw := True;
if ListView1.Items.Count = 0 then Exit;
for iLoop := 0 to ListView1.Items.Count - 1 do
begin
if iLoop >= ListView1.Items.Count then Exit;
if ListView1.Items[iLoop].Data = nil then Continue;
Rect := ListView1.Items[iLoop].DisplayRect(drBounds);
for iColumnLoop := 0 to ListView1.Columns.Count - 2 do
begin
Rect.Left := Rect.Left + ListView1.Columns[iColumnLoop].Width;
Rect.Right := Rect.Left + ListView1.Columns[ListView1.Columns.Count - 1].Width;
end;
ProgressBar := TStreamRecord(ListView1.Items[iLoop].Data).ProgressBar;
if ProgressBar <> nil then
begin
if ((ProgressBar.BoundsRect.Left <> Rect.Left) or (ProgressBar.BoundsRect.Right <> Rect.Right) or (ProgressBar.BoundsRect.Top <> Rect.Top)) then
begin
ProgressBar.BoundsRect := Rect;
ProgressBar.Visible := True;
ProgressBar.Repaint;
SendMessage(ProgressBar.Handle, WM_USER + 9, 0, clBlack);
end;
end;
ProgressBar := TStreamRecord(ListView1.Items[iLoop].Data).SendProgressBar;
if ProgressBar <> nil then
begin
if ((ProgressBar.BoundsRect.Left <> Rect.Left) or (ProgressBar.BoundsRect.Right <> Rect.Right) or (ProgressBar.BoundsRect.Top <> Rect.Top)) then
begin
ProgressBar.BoundsRect := Rect;
ProgressBar.Visible := True;
ProgressBar.Repaint;
SendMessage(ProgressBar.Handle, WM_USER + 9, 0, clBlack);
end;
end;
end;
end;
procedure TTransfers.FormResize(Sender: TObject);
begin
if ListView1.Height <> Transfers.Height - 26 then
ListView1.Height := Transfers.Height - 26;
if ListView1.Width <> Transfers.Width - 8 then
ListView1.Width := Transfers.Width - 8;
ListView1.Refresh;
end;
procedure TTransfers.ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
begin
Item.Selected := False;
Item.Focused := False;
ListView1.Repaint;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -