Показать сообщение отдельно
  #1  
Старый 30.07.2022, 19:28
arktik arktik вне форума
Прохожий
 
Регистрация: 30.07.2022
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Класс и поток

Прошу помощи как начинающий.

Ниже выкладываю обобщенные фрагменты из программы.
Есть класс TCSyn и поток MyThread. В потоке выполняется процедура VaChar.
Скажу сразу программа компилируется без ошибок и выполняется. Но...
Но когда запускается поток в процедуре VaChar при выполнении Count:= Count+1; происходит ошибка и процесс останавливается. Похоже, что поток не видит переменных описанных в классе TCSyn. Прошу подсказать как исправить это и что делал не правильно.

Код:
TCSyn = class(TComponent)  //TComponent
  Public
   
    inp          : Tinp;          
    FString    : String;         Сообщение
    Count      : integer;
    Tek          : Double;        
    TimeTek   : Double;        

    Constructor Create(AOwner:TComponent);override;     
    Destructor  Destroy; override;                         
   

    procedure VaChar;
   
  Protected
 
  Private

 End;
-------------------------------------
 type
 MyThread=class(TThread)
 private{private declaration}
  
    pser:  TCSyn;

 protected
 procedure execute;override;
 public

 end;

 var MyThr: MyThread;
-------------------------------------------------------------------------
procedure MyThread.execute;
 var S: string; i:integer;
begin

             Synchronize(pser.VaChar);
 
end;
------------------------------------------------------------------------
procedure TCSyn.VaChar;
var S:String; 
begin


  Count:= Count+1;     


end;
Админ: Пользуемся тегами при оформлении кода!
Ответить с цитированием