字符串和字符在Delphi Berlin中无效的类型转换

问题描述 投票:-2回答:1

我在将代码从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无效的类型转换

string delphi
1个回答
4
投票

如果有人问你这个问题,你无法将像Hello这样的文本转换为现实生活中的单个字符。所以编译器不能因为它是不可能的。你可能想写一些类似的东西:

S := #$5A + MaskEdit1.Text[1] + #$01#$00#$0D#$0A;

其中[1]是掩码编辑文本字符串的第一个char(希望用户可以输入的唯一一个)的索引。假设基于1的字符串char索引,这是桌面应用程序编译器的默认值。

© www.soinside.com 2019 - 2024. All rights reserved.