![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Код:
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute(x1,x2: String; nomer: integer); reintroduce;
public
constructor Create(x1,x2: String; nomer: integer); overload;
end;
constructor TMyThread.Create(x1,x2: String; nomer: integer);
begin
Create(True);
FreeOnTerminate := True;
Priority := tpNormal;
Execute(x1,x2,nomer);
end;
procedure TMyThread.Execute(UIN,Msg: String; nomer: integer);
//тут сам код потока уженужно передавать пераменные в поток, вот у меня собственно вопрос все ли правильно сделал, тестировал вроде работает |
|
#2
|
||||
|
||||
|
Ну думаю надо объявлять так:
Код:
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute(x1,x2: String; nomer: integer); reintroduce;
public
constructor Create(x1,x2: String; nomer: integer); {overload не нужен}
...Последний раз редактировалось v1s2222, 25.02.2011 в 18:06. |
|
#3
|
||||
|
||||
|
я просто думал мб я не правильно вызываю поток обычно Resume; надо но туда переменные не подставишь, спасибо
|
|
#4
|
||||
|
||||
|
Дак вы же сами предложили использовать reintroduce. Именно он и разрешает "переопределять" процедуру.
|
|
#5
|
||||
|
||||
|
можете сказать подробней, просто он у меня ошибку писал я прочитал что нужно добавить reintroduce дабы не ругался а так понятия не имею что делает reintroduce.
|
|
#6
|
||||
|
||||
|
Reintroduce просто переопределяет функцию (процедуру). То бишь не выводит сообщение о перекрытии метода. В вашем случае метод Execute есть у класса TThread. А вы его переопределяете под ваши нужды.
|
|
#7
|
||||
|
||||
|
Код:
type
TMyThread = class(TThread)
private
iParam: Integer;
sParam: String;
protected
procedure Execute; override;
public
constructor Create(iParam: Integer; sParam: String);
end;
constructor TMyThread.Create(iParam: Integer; sParam: String);
begin
inherited Create(True);
Self.iParam:=iParam;
Self.sParam:=sParam;
Resume;
end;
procedure TMyThread.Execute;
begin
while not Terminated do
begin
// iParam:=$ff;
// sParam:='lost';
end;
end;Код:
TMyThread.Create($ff, 'lost'); |