Вверх ↑
Ответов: 2125
Рейтинг: 159
#1: 2006-11-05 00:12:34 ЛС | профиль | цитата
Кроме того, для нового Thread никто не вызывает CoInitialize, соответственно СОМ объекты нельзя создавать. Проблему можно решить так:
uses Kol,Share,Windows,Debug,ActiveX;
...
function THIThread.Execute(Sender:PThread): Integer;
begin
CoInitialize(nil);
FStop := false;
repeat
sleep(_prop_delay);
_hi_OnEvent(_event_onExec);
if Assigned(_event_onSyncExec.Event) then Sender.Synchronize(SyncExec);
until Sender.Terminated or _prop_FastStop or FStop;
Sender.Tag := 0;
CoUninitialize;
Result := 0;
end;
Однако, создавать скрипт нужно тоже в новом Thread, используя, например, динамический мультик:
Add(MultiElementEx,14825340,259,175)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,12582104,3,3)
{
WorkCount=#5:##add|
Point(##add)
link(##add,1551462:doWork,[(29,9)(29,41)])
}
Add(VBJScript,1551462,56,35)
{
WorkPoints=#6:doWork|
Script=#27:Function doWork(Data,Index)|13: MsgBox "OK!"|12:End Function|
}
END_SDK
Add(Button,15231113,133,175)
{
Left=40
Top=60
Width=75
Caption="Error"
link(onClick,5240250:doStart,[])
}
Add(Thread,5240250,196,175)
{
FastStop=0
link(onExec,14825340:##add,[])
}
карма: 1

0