Вот тут:
Уже сделано.
Вот:
unit kwCompiledThread; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Библиотека "ScriptEngine" // Модуль: "kwCompiledThread.pas" // Родные Delphi интерфейсы (.pas) // Generated from UML model, root element: SimpleClass::Class Shared Delphi Low Level::ScriptEngine::CodeFlowWords::TkwCompiledThread // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {$Include ..\ScriptEngine\seDefine.inc} interface {$If not defined(NoScripts)} uses kwCompiledWordWorker, tfwScriptingInterfaces ; {$IfEnd} //not NoScripts {$If not defined(NoScripts)} type TkwCompiledThread = class(TkwCompiledWordWorker) protected // realized methods procedure DoDoIt(const aCtx: TtfwContext); override; end;//TkwCompiledThread {$IfEnd} //not NoScripts implementation {$If not defined(NoScripts)} uses seThreadSupport ; {$IfEnd} //not NoScripts {$If not defined(NoScripts)} // start class TkwCompiledThread procedure TkwCompiledThread.DoDoIt(const aCtx: TtfwContext); //#UC START# *4DAEEDE10285_4FFFD8970110_var* //#UC END# *4DAEEDE10285_4FFFD8970110_var* begin //#UC START# *4DAEEDE10285_4FFFD8970110_impl* TseWorkThreadList.Instance.AddAndResumeThread(aCtx, f_Word); //#UC END# *4DAEEDE10285_4FFFD8970110_impl* end;//TkwCompiledThread.DoDoIt {$IfEnd} //not NoScripts initialization {$If not defined(NoScripts)} // Регистрация TkwCompiledThread TkwCompiledThread.RegisterClass; {$IfEnd} //not NoScripts end.
unit kwTHREAD; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Библиотека "ScriptEngine" // Модуль: "kwTHREAD.pas" // Родные Delphi интерфейсы (.pas) // Generated from UML model, root element: ScriptKeyword::Class Shared Delphi Low Level::ScriptEngine::CodeFlowWords::THREAD // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// {$Include ..\ScriptEngine\seDefine.inc} interface {$If not defined(NoScripts)} uses tfwWordWorker, tfwScriptingInterfaces, kwCompiledWordWorker ; {$IfEnd} //not NoScripts {$If not defined(NoScripts)} type TkwTHREAD = {final scriptword} class(TtfwWordWorker) protected // realized methods function CompiledWorkerClass(const aCtx: TtfwContext): RkwCompiledWordWorker; override; protected // overridden protected methods class function GetWordNameForRegister: AnsiString; override; end;//TkwTHREAD {$IfEnd} //not NoScripts implementation {$If not defined(NoScripts)} uses kwCompiledThread ; {$IfEnd} //not NoScripts {$If not defined(NoScripts)} // start class TkwTHREAD function TkwTHREAD.CompiledWorkerClass(const aCtx: TtfwContext): RkwCompiledWordWorker; //#UC START# *4DCBD67C0362_4FFFCE260353_var* //#UC END# *4DCBD67C0362_4FFFCE260353_var* begin //#UC START# *4DCBD67C0362_4FFFCE260353_impl* Result := TkwCompiledThread; //#UC END# *4DCBD67C0362_4FFFCE260353_impl* end;//TkwTHREAD.CompiledWorkerClass class function TkwTHREAD.GetWordNameForRegister: AnsiString; {-} begin Result := 'THREAD'; end;//TkwTHREAD.GetWordNameForRegister {$IfEnd} //not NoScripts initialization {$If not defined(NoScripts)} // Регистрация THREAD TkwTHREAD.RegisterInEngine; {$IfEnd} //not NoScripts end.
Уже сделано.
Вот:
type TkwTHREAD = {final scriptword} class(TtfwWordWorkerEx) {* Слово скрипта THREAD *Пример:* [code] THREAD aWord [code] } private // private methods procedure THREAD(const aCtx: TtfwContext; aWord: TtfwWord); {* Реализация слова скрипта THREAD } protected // overridden protected methods class function GetWordNameForRegister: AnsiString; override; public // overridden public methods procedure DoRun(const aCtx: TtfwContext); override; function GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; override; end;//TkwTHREAD // start class TkwTHREAD procedure TkwTHREAD.THREAD(const aCtx: TtfwContext; aWord: TtfwWord); //#UC START# *A56425D1C72F_44C318D8896A_var* //#UC END# *A56425D1C72F_44C318D8896A_var* begin //#UC START# *A56425D1C72F_44C318D8896A_impl* TseWorkThreadList.Instance.AddAndResumeThread(aCtx, aWord); //#UC END# *A56425D1C72F_44C318D8896A_impl* end;//TkwTHREAD.THREAD class function TkwTHREAD.GetWordNameForRegister: AnsiString; {-} begin Result := 'THREAD'; end;//TkwTHREAD.GetWordNameForRegister procedure TkwTHREAD.DoRun(const aCtx: TtfwContext); {-} var l_aWord : TtfwWord; begin try l_aWord := TtfwWord(aCtx.rEngine.PopObjAs(TtfwWord)); except on E: Exception do begin RunnerError('Ошибка при получении параметра aWord: TtfwWord : ' + E.Message, aCtx); Exit; end;//on E: Exception end;//try..except THREAD(aCtx, l_aWord); end;//TkwTHREAD.DoRun function TkwTHREAD.GetResultTypeInfo(const aCtx: TtfwContext): PTypeInfo; {-} begin Result := @tfw_tiVoid; end;//TkwTHREAD.GetResultTypeInfo
Комментариев нет:
Отправить комментарий