VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1138|回复: 2

Delphi中Delete的一个初级问题!

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-12-16 12:00:02 | 显示全部楼层 |阅读模式
刚刚开始学DELPHI,很多问题不懂,也百试不得其解.问一下大哥大姐们?呵.....

我在Delphi中拖拽了几个控件.然后,在一个BUTTON的单击事件中写了下面的东西:
  begin
        Label1.Caption:=Concat(Edit1.text,Edit2.text);
        Label2.Caption:=Delete(Label1.Caption,1,1);
  end;
摄氏,提示:
[Error] Unit1.pas(34): Constant object cannot be passed as var parameter
我再把它改成了:
var
        S:string;
begin
        Label1.Caption:=Concat(Edit1.text,Edit2.text);
        S:=label1.Caption;
        Label2.Caption:=Delete(S,1,1);
end;
结果却提示:
[Error] Unit1.pas(35): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'

敢问各位,这是什么意思?
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-20 06:00:01 | 显示全部楼层
因改成:
var
        S:string;
begin
        Label1.Caption:=Concat(Edit1.text,Edit2.text);
        S:=label1.Caption;
        //Label2.Caption:=Delete(S,1,1);
        Delete(S, 1, 1);
        Label2.Caption := S;
end;
说明:第一次出错,是因为Delete函数带的第一个参数是变量类型的,也就是引用类型,
      第二次出错,是因为Delete函数是没有返回值的,也就是是一个过程Procedure类型的

回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-12-20 17:00:01 | 显示全部楼层
谢谢楼上的大哥,问题解决了,真是太谢谢了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表