mythread.pas

来自「SourceCode for Delphi. potoki v delphi」· PAS 代码 · 共 71 行

PAS
71
字号
unit MyThread;

interface

uses  Classes, Graphics, ComCtrls;

type
  TPaintThread = class(TThread)
  private
    x,y:integer;
    FColor:TColor;
    FProgressBar:TProgressBar;
  public
    constructor InitColor(nColor:TColor);
    property ProgressBar:TProgressBar 
    write FProgressBar;
    procedure DisplayProgress;
  protected
    procedure Execute; override;
    procedure Paint;
  end;

implementation

  uses Main;

constructor TPaintThread.InitColor(nColor:TColor);
begin
  Fcolor:=nColor;
end;

procedure TPaintThread.DisplayProgress;
begin
 CriticalProcess.Acquire;
   try
  FprogressBar.Position:=y;
    finally
    CriticalProcess.Release;
        end;
end;


procedure TPaintThread.Paint;
var  j: Integer;
begin
     CriticalPaint.Acquire;
     try
  for j:=0 to 250 do begin
    x:=j;
    Form1.Canvas.Pixels[x,y]:=FColor;
  end;
        finally;
        CriticalPaint.Release;
        end;
end;


procedure TPaintThread.Execute;
  var  i: Integer;
begin
  repeat
    for i:=0 to Form1.ClientHeight do begin
      y:=i;
      DisplayProgress;
      Paint;
    end;
  until Terminated;
end;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?