DELPHI XE7[dcc32错误]E2250没有可以使用这些参数调用的“Pos”重载版本

DELPHI XE7[dcc32错误]E2250没有可以使用这些参数调用的“Pos”重载版本,delphi,delphi-xe7,dcc32,Delphi,Delphi Xe7,Dcc32,Win32位上的DELPHI XE7 代码: 请帮助我如何修复该代码 提前感谢Pos的参数是两个字符串。函数将搜索子字符串的第一个匹配项(第一个参数在另一个字符串中)和第二个参数。此处记录了该功能: 您正在传递类型为TIdContext且不是字符串的文本。要修复代码,需要传递包含要在其中搜索的文本的字符串 TIdContext可能不是字符串…您可能希望使用不是字符串的TIdMappedPortContextAContext.NetData进行操作。但在不知道目标的情况下,这只是一个猜测。当出现这

Win32位上的DELPHI XE7 代码:

请帮助我如何修复该代码

提前感谢

Pos的参数是两个字符串。函数将搜索子字符串的第一个匹配项(第一个参数在另一个字符串中)和第二个参数。此处记录了该功能:


您正在传递类型为TIdContext且不是字符串的文本。要修复代码,需要传递包含要在其中搜索的文本的字符串

TIdContext可能不是字符串…您可能希望使用不是字符串的TIdMappedPortContextAContext.NetData进行操作。但在不知道目标的情况下,这只是一个猜测。当出现这样的错误消息时,第一步很明显:1确定函数存在哪些重载版本。2确定正在使用的参数。你做了那些事吗?@AndreasRejbrand你能告诉我是哪个代码出错的吗@TLama是的,如果pos'CONNECT',athread.NetData0或pos'GET',athread.NetData0或pos'POST',athread.NetData0或pos'HEAD',我会在以前的indy脚本中使用类似的内容,athread.NetData0工作正常,但我想改为indy 10,但在Delphi中出现了错误@RobKennedy m new你能给我一个例子,如果我想检查http头是send CONNECT还是POST或GET命令,如何使用pos吗?只要你能以字符串形式获取http头,你的代码就可以了。你能做到吗?
procedure TForm1.IdMappedPortTCP1Execute(AContext: TIdContext);
begin
if (pos('CONNECT',AContext)<>0) or (pos('GET',AContext)<>0) or (pos('POST',AContext)<>0) or   (pos('HEAD',AContext)<>0)
then
(....)
sleep(100);
end;
[dcc32 Error] Unit1.pas(49): E2250 There is no overloaded version of 'Pos' that can be called with these arguments