请教 (50分)

  • 主题发起人 主题发起人 fphuang
  • 开始时间 开始时间
F

fphuang

Unregistered / Unconfirmed
GUEST, unregistred user!
type
abc:record
(
a:integer;
b:string;
c:boolean
)
end;
const
aaa:abc
(
a:3;
b:'name';
c:true
)
以上结构,我想动态更改const aaa中的a,b,c三个量,如何更改?
 
const 怎么改? 想改就不要用const 用var
 
对呀,常量怎么个改法?
 
可是我偏偏遇到一个这样的函数
function aaaa(const:abc):boolean;
 
类型常量是可以改的
就当它是一个变量那样,只不过它有初始值
abc.a :='a';
abc.b := 123;
abc.c := false;
函数function aaaa(const abc):boolean
的实参数也可以是一个变量,只不过函数内不会改abc的值
 
1 这种常量你能该边他的值 但你要使用{$J+}编译指示字
const V:integer=100

2 function aaaa(const abc):boolean
这个函数是你定义的吗? 如果不是, 那作者的意思是这个abc是任意类型的参数;
 
我是举了一个例子,那个函数和我这个是一样的,就是名字不一样,是一个有dll调用过来的函数,看不到其内部结构。
向楼上的几位表示感谢,我从前没有遇到过这样的函数,碰上就蒙了。我明天到单位试试去。
 
类型常量是可以改
说的没有错!
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
abc=record
a:integer;
b:integer;
c:integer;
end;
const
aaa:abc=(a:1;b:2;c:3);

function ddd(const aaa:abc):integer;


type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);

private

{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;



implementation

{$R *.dfm}
function ddd(const aaa:abc):integer;
begin
result:=aaa.a+aaa.b+aaa.c;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
aaa.a:=23
aaa.b:=34
aaa.c:=45;
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^上面这一行报错误,
edit1.Text:=inttostr(ddd(aaa));
end;
我将如何修改函数function ddd(const aaa:abc):integer;的输入值啊?
end.
 
你的这段程序(最少在D6中)不会有错误,仔细看看其他地方吧
 
我是在做试验,程序只有一个窗体,在窗体上放了一个按扭、一个edit,
但是确实是提示错误,错误信息为:
[error]unit1.pas(48):left side cannot be assigned to

我用的就是D6
 
多人接受答案了。
 
{$j+}//少了这个
aaa.a:=23
aaa.b:=34
aaa.c:=45;
edit1.Text:=inttostr(ddd(aaa));
{$j-}
end;
 

Similar threads

S
回复
0
查看
705
SUNSTONE的Delphi笔记
S
S
回复
0
查看
699
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部