⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 SourceCode for Delphi. potoki v delphi
💻 PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, MyThread,SyncObjs;

type
  TForm1 = class(TForm)
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    TrackBar1: TTrackBar;
    TrackBar2: TTrackBar;
    TrackBar3: TTrackBar;
    ProgressBar1: TProgressBar;
    ProgressBar2: TProgressBar;
    ProgressBar3: TProgressBar;
    BitBtn1: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    PT: array [1..3] of TPaintThread;
  end;

var
  Form1: TForm1;
  CriticalProcess:TCriticalSection;
  CriticalPaint:TCriticalSection;


implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
Form1.Canvas.Lock;
if (Sender as TCheckbox).Checked then
PT[(Sender as TCheckbox).Tag].Resume
else PT[(Sender as TCheckbox).Tag].Suspend;
  Form1.Canvas.UnLock;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
PT[(Sender as TTrackBar).Tag].Priority :=
TThreadPriority ((Sender as TTrackBar).Position);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  CriticalProcess:=TCriticalSection.Create;
  CriticalPaint:=TCriticalSection.Create;
  PT [1] := TPaintThread.Create(true);
  PT [2] := TPaintThread.Create(true);
  PT [3] := TPaintThread.Create(true);
  PT[1].InitColor(clRed);
  PT[2].InitColor(clBlue);
  PT[3].InitColor(clGreen);
  ProgressBar1.Max:=Form1.ClientHeight;
  ProgressBar2.Max:=Form1.ClientHeight;
  ProgressBar3.Max:=Form1.ClientHeight;
  ProgressBar1.Step:=Form1.ClientHeight div 10;
  ProgressBar2.Step:=Form1.ClientHeight div 10;
  ProgressBar3.Step:=Form1.ClientHeight div 10;
  PT[1].ProgressBar:=ProgressBar1;
  PT[2].ProgressBar:=ProgressBar2;
  PT[3].ProgressBar:=ProgressBar3;

end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
 Canvas.Lock;
  try
    Canvas.Pen.Color := Color;
    Canvas.Brush.Color := Color;
    Canvas.Ellipse (x - 30, y - 30, x + 30, y + 30);
  finally
    Canvas.Unlock;
  end;
end;

end.

⌨️ 快捷键说明

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