TMS Web Core内联变量报语法错误,VCL/FMX中正常如何解决
TMS Web Core内联变量语法错误问题解决
你遇到的问题核心是TMS Web Core的Pascal编译规则和标准Delphi存在差异:
标准Delphi(10.3+)支持在代码执行语句中用var声明内联变量,但TMS Web Core基于的PascalScript子集,早期版本并不支持这个语法,它要求变量必须在代码块的开头集中声明,不能穿插在执行语句中间。你的两段代码在VCL/FMX中正常,是因为标准Delphi编译器支持这种现代Pascal语法,但Web Core的编译器不兼容该写法,所以触发语法错误。
解决方案1:传统Pascal变量声明方式
把所有变量移到begin之前的var块中集中声明,再在代码里赋值:
procedure TfrmMain.btnSignInClick(Sender: TObject); var UserEmail: String; UserPassword: String; UserRememberMe: Boolean; begin UserEmail := edtEmail.Text; UserPassword := edtPassword.Text; UserRememberMe := tglRememberMe.Checked; SignIn(UserEmail, UserPassword); end;
解决方案2:使用Web Core支持的let关键字(部分新版本可用)
如果你的TMS Web Core版本较新,可以用let关键字替代var来做内联变量声明,这是Web Core适配JS语法提供的特性:
procedure TfrmMain.btnSignInClick(Sender: TObject); begin let UserEmail := edtEmail.Text; let UserPassword := edtPassword.Text; let UserRememberMe := tglRememberMe.Checked; SignIn(UserEmail, UserPassword); end;
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

