unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) GroupBox1: TGroupBox; GroupBox2: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; RadioButton5: TRadioButton; RadioButton6: TRadioButton; Button1: TButton; ScrollBar1: TScrollBar; procedure Button1Click(Sender: TObject); procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure RadioButton3Click(Sender: TObject); procedure RadioButton4Click(Sender: TObject); procedure RadioButton5Click(Sender: TObject); procedure RadioButton6Click(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end; //поток1 TThread1 = class(TThread) private { Private declarations } protected procedure Execute; override; procedure DoSomething; end; //поток2 TThread2 = class(TThread) private { Private declarations } protected procedure Execute; override; procedure DoSomething; end; var Form1: TForm1; T1:TThread1; T2:TThread2; implementation {$R *.DFM} //тело потока procedure TThread1.Execute; begin repeat Synchronize(DoSomething); //синхронизирует поток с программой until terminated; end; procedure TThread1.DoSomething; begin Form1.ScrollBar1.Position:=10; end; procedure TThread2.Execute; begin repeat Synchronize(DoSomething); until terminated; end; procedure TThread2.DoSomething; begin Form1.ScrollBar1.Position:=90; end; procedure TForm1.Button1Click(Sender: TObject); begin T1:=TThread1.Create(false); //создать поток1 T2:=TThread2.Create(false); //создать поток2 RadioButton2.Checked:=true; // прио tpNormal RadioButton5.Checked:=true; // прио tpNormal Button1.Enabled:=false; v end; procedure TForm1.RadioButton1Click(Sender: TObject); begin if (sender as TRadioButton).Checked then begin T1.Priority:=tpLowest; RadioButton6.Enabled:=true; end; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin if (sender as TRadioButton).Checked then begin T1.Priority:=tpNormal; RadioButton6.Enabled:=true; end; end; procedure TForm1.RadioButton3Click(Sender: TObject); begin if (sender as TRadioButton).Checked then begin T1.Priority:=tpHighest ; RadioButton6.Enabled:=false; end; end; procedure TForm1.RadioButton4Click(Sender: TObject); begin if (sender as TRadioButton).Checked then begin T2.Priority:=tpLowest ; RadioButton3.Enabled:=true; end; end; procedure TForm1.RadioButton5Click(Sender: TObject); beg if (sender as TRadioButton).Checked then begin T2.Priority:=tpNormal; RadioButton3.Enabled:=true; end; end; procedure TForm1.RadioButton6Click(Sender: TObject); begin if (sender as TRadioButton).Checked then begin T2.Priority:=tpHighest; RadioButton3.Enabled:=false; end; end; procedure TForm1.FormDestroy(Sender: TObject); begin T1.Suspend; T2.Suspend; T1.Terminate; T1.Free; T2.Terminate; T2.Free; end; end.