Здравствуйте!
В приложении есть главная форма на ней кнопка при нажатии на которую загружается dll.
Dll содержит содержит одну форму(form4) и модуль потока(unit2). На форме расположена кнопка (Button1) и поле ввода (Edit1). При нажатии на кнопку нужно запустить поток из которого значение edit1.text увеличивается на определенную величину.
Объясните почему не работает следующий код:
Код:
unit Unit2; //модуль потока
interface
uses
Classes,SysUtils,unit4;
type
potok = class(TThread)
var i:integer;
procedure asd;
private
protected
procedure Execute; override;
end;
implementation
procedure potok.asd;
begin
form4.edit1.text:=inttostr(i);
end;
procedure potok.Execute;
begin
while 1=1 do
begin
synchronize(asd);
inc(i);
end;
end;
end.
unit unit4 //модуль формы
mplementation
uses unit2;
{$R *.dfm}
var p : potok;
procedure TForm4.Button1Click(Sender: TObject);
begin
p:=potok.Create(true);
p.Priority:=tplower;
p.Resume;
end;
end.
Этот же пример пробовал без dll все работает;
Кстати если убрать синхронизацию(вместо synchronize(asd); просто имя функции) то все работает, значение edit1.text меняется.
Помогите кто чем сможет
