![]() |
|
|
Регистрация | << Правила форума >> | 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'); Пишу программы за еду. __________________ |