Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2010, 21:53   #1
tanek
Форумчанин
 
Регистрация: 07.03.2009
Сообщений: 209
Печаль потоки2

Здрастуйте форумчанины. Вот возник у меня опять вопрос по потокам написала программу, которая выводит разноцветные точки в вертикальную линию.... Проблема в том, что не понимаю как сделать чтобы они выводились до конца формы...
Я буду вам очень признательна если кто то откликнется на мою просьбу....
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ThreadId1,ThreadId2:DWORD;    //  индетификатор создаваемого потока
  HThread1,HThread2:THandle;  //  указатель на создаваемый поток
 	line_Width1, line_Height1, line_Width2, line_Height2 :integer;
  i,x,y,dx,dy:integer;
implementation

{$R *.dfm}

procedure Execute1;
begin

 Form1.Canvas.Pen.Color:=clblack;
 form1.canvas.brush.color := clblack;
 Form1.Canvas.Pen.Width:=line_Height1;
 Form1.Canvas.Ellipse(x,y,x+5,y+5);
 y:=y+dy;
 ExitThread(0);

end;

procedure Execute2;
begin
 Form1.Canvas.Pen.Color:=clred;
 form1.canvas.brush.color := clred;
 Form1.Canvas.Pen.Width:=line_Height1;
 Form1.Canvas.Ellipse(x,y,x+5,y+5);
  y:=y+dy;
   ExitThread(0);

 end;



procedure TForm1.Button1Click(Sender: TObject);
begin
  HThread1:=CreateThread (nil, 0, @Execute1, nil, 0, ThreadId1);
  HThread2:=CreateThread (nil, 0, @Execute2, nil, 0, ThreadId2);
  SetThreadPriority(HThread1,Thread_Priority_Normal);
  SetThreadPriority(HThread2,Thread_Priority_Normal);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  x:=0;
  y:=0;
  dx:=5;
  dy:=5;
end;

end.
tanek вне форума Ответить с цитированием
Старый 16.03.2010, 01:19   #2
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

Код:
var
  Form1: TForm1;
  line_Width1, line_Height1, line_Width2, line_Height2 :integer;
  i,x,y,dx,dy, l:integer;

implementation


{$R *.dfm}
procedure Execute;
begin

for l:=0 to 100 do
begin
 Form1.Canvas.Pen.Color:=clblack;
 form1.canvas.brush.color := clblack;
 Form1.Canvas.Pen.Width:=line_Height1;
 Form1.Canvas.Ellipse(x,y,x+5,y+5);
 y:=y+dy;

 Form1.Canvas.Pen.Color:=clred;
 form1.canvas.brush.color := clred;
 Form1.Canvas.Pen.Width:=line_Height1;
 Form1.Canvas.Ellipse(x,y,x+5,y+5);
 y:=y+dy;
end;

ExitThread(0);

end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ThreadId1:LongWord;    //  индетификатор создаваемого потока
  HThread1:THandle;  //  указатель на создаваемый поток
begin
  SetThreadPriority(HThread1,Thread_Priority_Normal);
  HThread1:=CreateThread (nil, 0, @Execute, nil, 0, ThreadId1);
  CloseHandle(HThread1);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  x:=0;
  y:=0;
  dx:=5;
  dy:=5;
end;
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
Volt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц