![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про поток... [D6, XP]
vegarulez © (2008-01-03 20:08:00)мастера помогите...
пытаюсь делать как написано вот тут
http://www.delphimaster.ru/articles/panov/
но он почему то в потоке ругается на конструктор - типа
Declaration of 'Create' differs from previous declaration
type
TSend = class(TThread)
private
FSelect: String; //переменная запроса
{ Private declarations }
protected
procedure Execute; override;
public
constructor Create(aSelect: String);
end;
implementation
uses Unit1;
{ TSend }
constructor TSend.Create(aPath: String);
begin
inherited Create(True); //Созданный поток создается в приостановленном состоянии
FreeOnTerminate := True; //Поток освободит ресурсы при окончании работы
FSelect := aSelect; //Переменная селекта из основного потока
Self.Priority := Tplower; //Низкий приоритет
Resume; //Запускаем приостановленный поток
end;
Подскажите что не так? делаю вроде всё также как в статье...
_Mike_ (2008-01-04 02:45:00) [1]
> MetalFan © (03.01.08 21:48) [3]
ага. Точно. Что-то, блин, праздники на пользу не пошли...
vegarulez (2008-01-04 02:12:00) [2]нда...
мне в этом обсуждении остаётся тока нервно покуривать в сторонке...
и сжимать в кулаке свои 5 копеек до лучших времён... )
Из выше прочитанного...
У меня D6, в котором скорее всего, я думаю, ещё не было никуда ничего перенесяно...
MetalFan (2008-01-03 22:25:00) [3]
> Вызов CreateThread уже давно перенесен в AfterConstructor.
Resume туда перенесли.
а BeginThread как был в конструкторе, так и остался. (правда он там создается с CREATE_SUSPENDED
ага (2008-01-03 22:06:00) [4]2 Loginov Dmitry ©
> А почему бы так не написать:
А потому что статья писалась до того как
> Вызов CreateThread уже давно перенесен в AfterConstructor.
Loginov Dmitry (2008-01-03 22:00:00) [5]А почему бы так не написать:
constructor TSend.Create(aPath: String);
begin
inherited Create(False);
FreeOnTerminate := True; //Поток освободит ресурсы при окончании работы
FSelect := aSelect; //Переменная селекта из основного потока
Self.Priority := Tplower; //Низкий приоритет
end;
Вызов CreateThread уже давно перенесен в AfterConstructor.
ага (2008-01-03 21:58:00) [6]2 _Mike_
Ага. А вызов Priority := Tplowerкуда пойдет? На Сириус к зеленым человечкам?
> Ну и сразу запускаем. Нах тут Resume???
А затем что версии Delphi и до 2007 бывают. Пятая например.
MetalFan (2008-01-03 21:48:00) [7]
> Почему бы так не написать:
словишь ошибку при установке Priority.
_Mike_ (2008-01-03 21:41:00) [8]
> constructor TSend.Create(aPath: String);
> begin
> inherited Create(True); //Созданный поток создается
> в приостановленном состоянии
> FreeOnTerminate := True; //Поток освободит ресурсы при
> окончании работы
> FSelect := aSelect; //Переменная селекта из основного
> потока
> Self.Priority := Tplower; //Низкий приоритет
> Resume; //Запускаем приостановленный
> поток
> end;
Какой-то глупый код...
Почему бы так не написать:
> constructor TSend.Create(aPath: String);
> begin
> FreeOnTerminate := True;
> FSelect := aSelect;
> Priority := Tplower; // Self То тут зачем????
> inherited Create(False); // Ну и сразу запускаем. Нах тут Resume???
> end;
vegarulez (2008-01-03 20:12:00) [9]всё... понел ошибку когда прочёл свой же вопрос... выделленный мною же жирный фрагмент... в нём ошибка была...
aPath то забыл заменить на свою переменную...
всем спасибо - разобрался...