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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2008, 23:13   #1
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию Ошибка при работе с потоками

у меня выдает ошибку Canvas does not allow drawing
Когдат работаю с потоками.
Как предотвратить ошибку??
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Старый 08.03.2008, 23:54   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Как предотвратить ошибку
Выдать "страшный" секрет - привести код...
Дело в том, что все телепаты у нас нынче "в отпусках", а мы сами, как вы понимаете, не очень...
mihali4 вне форума Ответить с цитированием
Старый 08.03.2008, 23:58   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Было такое. Видимо вызов обработчиков из других потоков, используйте синхронную обработку в вашем потоке ( в Execute обработчике ) думаю это исправит ошибку. Проверьте так же присваивания Parent, и на верность существования объектов точно сказать не могу в чем дело. Но после синхронизации и пару проверок типа Assigned(Pointer) все стало нормально
BOBAH13 вне форума Ответить с цитированием
Старый 09.03.2008, 00:52   #4
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

Код:
unit potok;

interface

uses
  Classes,sysutils,dialogs,functionsunit;

type
  typeofthread = class(TThread)
  private
  procedure proc1;
  protected
    procedure Execute; override;
  public

  tip:(tip1,tip2);
  flag:boolean;
  fname:string;
  end;


var
namethread:typeofthread;
implementation

procedure typeofthread.Execute;
var i:integer;
begin
if not flag then begin
if tip=tip1 then proc;
end;

procedure typeofthread.proc1;
begin
DoProcedure(fname);
end;
end;
Doprocedure описана в другом модуле
ICQ-465033557
WINDOWS CE THE BEST

Последний раз редактировалось vitalik007; 09.03.2008 в 00:54. Причина: тег кода забыл!
vitalik007 вне форума Ответить с цитированием
Старый 09.03.2008, 04:23   #5
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Synchronize
Carbon вне форума Ответить с цитированием
Старый 09.03.2008, 09:14   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Carbon Посмотреть сообщение
Synchronize
if tip=tip1 then Synchronize(proc);
BOBAH13 вне форума Ответить с цитированием
Старый 09.03.2008, 09:25   #7
vitalik007
Дельфист
Форумчанин
 
Аватар для vitalik007
 
Регистрация: 14.08.2007
Сообщений: 317
По умолчанию

Спасибо большое!
ICQ-465033557
WINDOWS CE THE BEST
vitalik007 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при работе с структурой Nullator Общие вопросы C/C++ 11 07.03.2008 23:52
Ошибка при работе с файлом LeoN Общие вопросы Delphi 1 07.12.2007 15:21
Ошибка при работе с БД malevich БД в Delphi 8 25.11.2007 15:10
ошибка 105 (при работе с типизированными файлами) sdp Общие вопросы Delphi 8 11.07.2007 11:12