Delphi 插入字符串时出现问题,类型不兼容错误

Delphi problems inserting a string, Incompatible types error

procedure TTelephoneNumberConverter.btnConvertClick(Sender: TObject);
var
  number: string;
  dupe: string;
  converted: string;
begin
  number := edtInput.Text ;
  dupe := Copy(number, 4, 1) ;
  converted := Insert(dupe , number , 4 ) ;
  pnlOutput.Caption := converted;
end;

好的,我只是有一个关于 Delphi 2010 和将字符串插入其他字符串的快速问题。这段代码的目的是获取特定字符串中的第 4 个字符并复制它并将其添加到特定字符旁边,例如12345 -> 123445

唯一的问题是我不断收到错误消息:

Incompatible types 'string' and 'procedure, untyped pointer or untyped parameter'.

我可能遗漏了一些小而愚蠢的东西,但如果有人可以回答我的问题,我将不胜感激。

Insert 是一个修改其第二个参数的过程。

它的签名是:

procedure Insert(Source: string; var Dest: string; Index: Integer);

您看到的编译器错误的发生是因为 Insert 没有 return 任何东西,因此不能成为赋值的右侧。

因此您的代码应该是:

converted := number;
Insert(dupe, converted, 4);

Copy 对单个字符来说太过分了。使用 [] 代替:

dupe := number[4];