PDA

Просмотр полной версии : Почему не получаеться создать поток?


marcos
29.01.2010, 16:29
Всем привет! Пишу на делфи прогу с потоком но у меня вылетает ошибка компиляции. подскажите
http://s004.radikal.ru/i206/1001/3e/ae437c9a454d.jpg

Chrome~
29.01.2010, 16:37
Строчку
while true do
замени на
while true do;

marcos
29.01.2010, 16:40
Все равно таже ошибка(((

Chrome~
29.01.2010, 16:44
Выложи полный код, скажу в чем ошибка.

patcher
29.01.2010, 16:44
замени
while true do
на
while true do begin end;

marcos
29.01.2010, 16:47
Выложи полный код, скажу в чем ошибка.


Вот код потока


unit Unit3;

interface

uses
Classes;

type
TnewThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;

implementation

{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,

Synchronize(UpdateCaption);

and UpdateCaption could look like,

procedure TnewThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }

{ TnewThread }

procedure TnewThread.Execute;
begin
while true do;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
NewThread: TNewThread;
begin
NewThread:=TNewThread.Create(true);
NewThread.FreeOnTerminate:=true;
NewThread.Priority:=tpLower;
NewThread.Resume;
end;

end.

W!z@rD
29.01.2010, 17:26
глазки распахни, на скрине:
TForm1.Button1Click

НTL
29.01.2010, 20:51
вместо:
while true do
поставь
//

W!z@rD
29.01.2010, 21:39
ага, у кого какие еще версии будут?

автар скопировал код.

до запуска дело не доходит, что вы ему тут втираете, поставь коммент, поставь begin end.

Код хорошенько посмотрите.

][yZ
29.01.2010, 21:43
ТС суров... копировать в код потока TForm1.Button1Click это нечто

1n0y
29.01.2010, 22:17
[yZ']ТС суров... копировать в код потока TForm1.Button1Click это нечто

дак он не в коде потока (:

][yZ
29.01.2010, 22:18
именно в коде
procedure TnewThread.Execute;
begin
while true do;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
NewThread: TNewThread;
begin
NewThread:=TNewThread.Create(true);
NewThread.FreeOnTerminate:=true;
NewThread.Priority:=tpLower;
NewThread.Resume;
end;

1n0y
29.01.2010, 22:25
а может надо в uses написать побольше всего? например:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

и чудесно будет твой код работать (:

AlexTheC0d3r
29.01.2010, 22:29
а может надо в uses написать побольше всего? например:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

и чудесно будет твой код работать (:

бред... ИМХО
компилятор же пишет не какой нить unknown idintefer
а то, что вместо ожидаемой . стоит ;

удали цикл while и думаю скомпилируется

1n0y
29.01.2010, 22:30
дак яж не просто так написал. сам проверил перед этим ;)