我在将代码从Delphi 7迁移到Delphi Berlin 10.1时遇到问题
这是在Delphi 7上运行良好的代码
procedure TForm1.Button3Click(Sender: TObject);
var
S:String;
begin
//MaskEdit1.Text:=FF; <- This is the variable string
S:=#$5A+char(StrToInt(MaskEdit1.Text))+#$01#$00#$0D#$0A;
ComPort1.WriteStr(S);
end;
为什么char()
不能与Delphi Berlin 10.1上的字符串一起使用?,我尝试使用PAnsiChar()
并且不能正常工作
这是错误:
[dcc32错误] Unit1.pas(75):E2089无效的类型转换
答案 0 :(得分:4)
如果有人问你这个问题,你就不能将 Hello 这样的文本转换成现实生活中的单个字符。因此编译器不能,因为它是不可能的。你可能想写一些类似的东西:
S := #$5A + MaskEdit1.Text[1] + #$01#$00#$0D#$0A;
其中 [1] 是掩码编辑文本字符串的第一个char(希望用户可以输入的唯一一个)的索引。假设基于1的字符串char索引,这是桌面应用程序编译器的默认值。