我当然希望我不必手动注册所有TForm属性和函数,就像我们必须使用remobjects PascalScript一样,在这个时代它会让我们难看,就像避免那样……
DWscript可以这样做,还是形式超出了DWscript的范围(在这个阶段?)?
procedure TMainForm.button1Click(Sender: TObject);var ADWsProgramExecution: IDwsProgramExecution; ADelphiWebScript: TDelphiWebScript; ADWsProgram: IDwsProgram; ADWsUnit: TDWsUnit;begin ADWsUnit := TDWsUnit.Create(nil); ADelphiWebScript := TDelphiWebScript.Create(nil); try ADWsUnit.Unitname := 'ShowModalTest'; ADWsUnit.Script := ADelphiWebScript; ADWsUnit.ExposeRTTI(TypeInfo(TObject)); //Otherwise GetonAlignInsertBefore error when 'compiling' ADWsUnit.ExposeRTTI(TypeInfo(TForm)); //Want t ocreate a form ADWsProgram := ADelphiWebScript.Compile('procedure TestShowModal; begin TForm.Create(nil).ShowModal; end; end.'); //Stack overflow if ADWsProgram.Msgs.Count = 0 then begin ADWsProgramExecution := ADWsProgram.Execute; MEResult.lines.Text := ADWsProgramExecution.Result.ToString; end else MEResult.lines.Text := ADWsProgram.Msgs.AsInfo; finally ADelphiWebScript.Free; ADWsUnit.Free; end;end;解决方法 显然DWscript无法通过扩展RTTI正确注册任何内容,除非它是简单的类.这不是我对脚本引擎的想法,所以(现在)DWscript完全是图表,除非它可以rtti注册复杂的结构.这是非常有前途的,但在这个包完整和可用之前还有很长的路要走.
现在回到pascalscript,paxcompiler或tmsscript
总结以上是内存溢出为你收集整理的delphi – 编译包含TForm.Create(nil)的dwscript时堆栈溢出全部内容,希望文章能够帮你解决delphi – 编译包含TForm.Create(nil)的dwscript时堆栈溢出所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)