Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет7.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
392 Кб
Скачать
☆

Implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Thread1:=TSimpleThread.Create(false);

Thread1.Priority:=tpLowest;

Thread2:=TSimpleThread.Create(false);

Thread2.Priority:=tpLowest;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Edit1.Text:=IntToStr(Thread1.Count);

Edit2.Text:=IntToStr(Thread2.Count);

Thread1.Count:=0;

Thread2.Count:=0;

end;

procedure TForm1.TrackBar1Change(Sender: TObject);

var

i:integer;

Priority:TThreadPriority;

begin

Priority:=tpLowest;

for i:=0 to (Sender as tTrackBar).Position-1 do

inc(Priority);

if Sender=TrackBar1

then

Thread1.Priority:=Priority

else

Thread2.Priority:=Priority;

end;

end.

Результаты выполнения программы:

Пример 3. Текст модуля:

unit Main;

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, ExtCtrls, Menus, MoveThread;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

File1: TMenuItem;

Help1: TMenuItem;

TrackBar1: TTrackBar;

TrackBar2: TTrackBar;

TrackBar3: TTrackBar;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

PaintBox1: TPaintBox;

PaintBox2: TPaintBox;

PaintBox3: TPaintBox;

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure TrackBar1Change(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure FormShow(Sender: TObject);

public

Thread1, Thread2, Thread3: TMoveThread;

end;

var

Form1: TForm1;

pic1,pic2:TBitMap;

Implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

if not Thread1.Suspended

then

Thread1.Suspend;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

if not Thread2.Suspended

then

Thread2.Suspend;

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

if not Thread3.Suspended

then

Thread3.Suspend;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if Thread1.Suspended

then

Thread1.Resume;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if Thread2.Suspended

then

Thread2.Resume;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

if Thread3.Suspended

then

Thread3.Resume;

end;

procedure TForm1.TrackBar1Change(Sender: TObject);

var

i:integer;

Priority:TThreadPriority;

begin

Priority:=tpIdle;

for i:=0 to (Sender as TTrackBar).Position-1 do

inc(Priority);

if Sender=TrackBar1

then

Thread1.Priority:=Priority

else

if Sender=TrackBar2

then

Thread2.Priority:=Priority

else

Thread3.Priority:=Priority;

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

Close;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

pic1:=TBitMap.Create;

pic1.LoadFromFile('pic.bmp');

pic2:=TBitMap.Create;

pic2.LoadFromFile('pic.bmp');

Thread1:=TMoveThread.Create(pic1,pic2,PaintBox1);

Thread1.Priority:=tpLowest;

Thread2:=TMoveThread.Create(pic1,pic2,PaintBox2);

Thread2.Priority:=tpLowest;

Thread3:=TMoveThread.Create(pic1,pic2,PaintBox3);

Thread3.Priority:=tpLowest;

end;

end.

Результаты работы программы:

Задание 2.2. Текст модуля:

unit LAB2_1;