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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2012, 14:00   #1
TEED!
Пользователь
 
Регистрация: 04.06.2012
Сообщений: 22
По умолчанию Принудительное завершение потока не работает :(!

Отрывок из кода:
Код:
  Thread = class(TThread) //MyThread - заданное нами имя потока.
   private
     { Private declarations }
   protected
     procedure Execute; override;
   end;

var
  Form1: TForm1;
  TMyThread: Thread;

............

procedure Thread.Execute;
Теперь пояснение:
Пытаюсь принудительно завершить работу потока кликом на button.
Код баттона:
Код:
procedure TForm1.sBitBtn7Click(Sender: TObject);
begin
 Thread.Terminate;
 Thread.Free;
 Thread := nil;
end;
Но Дельфи ругается на:
Код:
Thread.Terminate;
По причине:
Код:
[DCC Error] Unit1.pas(174): E2076 This form of method call only allowed for class methods
Что не так?
TEED! вне форума Ответить с цитированием
Старый 06.06.2012, 14:11   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

http://www.cyberguru.ru/programming/delphi/threads.html
http://www.delphi-manual.ru/threads.php
При запуске потока:
Код:
TMyThread:=TNewThread.Create(true);
TMyThread.FreeOnTerminate:=true;
TMyThread.Resume;
Для останова:
Код:
TMyThread.Terminate;
Вы обращаетесь к классу вместо объекта.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 06.06.2012, 14:15   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Что не так?
потому что обращаешься не к конкретному созданному тобой (программой) объекту, а к классу.

Код:
var
  Form1: TForm1;
  TMyThread: Thread;
Объект TMyThread : класса (типа) Thread.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.06.2012, 14:34   #4
TEED!
Пользователь
 
Регистрация: 04.06.2012
Сообщений: 22
По умолчанию

Спасибо обоим,работает
BDA Прошу ответьте в соседней теме.
TEED! вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Принудительное закрытие программы. delphi Fantazerishka Помощь студентам 6 02.02.2016 15:39
Работа и корректное завершение потока TThread в любой ситуации... spamer Общие вопросы Delphi 9 03.04.2011 20:27
C# BackgroundWorker - завершение работы потока Lastsummer Помощь студентам 2 16.03.2011 18:04
Принудительное удаление системных файлов perseykO Помощь студентам 3 25.08.2009 07:22
Как отследить завершение выполнения потока TThread? Трик Общие вопросы Delphi 3 24.10.2007 14:55