Прошу помощи как начинающий.
Ниже выкладываю обобщенные фрагменты из программы.
Есть класс 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;
Админ: Пользуемся тегами при оформлении кода!