Writeln()函数问题?(50分)

  • 主题发起人 主题发起人 保龙
  • 开始时间 开始时间

保龙

Unregistered / Unconfirmed
GUEST, unregistred user!
(动态改变主调函数值)
以下代码是在书里看到的习题,可运行了不,Writeln()是一个什么函数,“它”是怎么用的,函数原形procedure WriteLn([ var F: Text;
] P1 [, P2, ...,Pn ] );“它”不是有两个参数的吗?是书本搞错了,还是什么呢?
procedure ChangeValue(X:integer);
var
intPrt:^integer;
begin
intPrt:=@X;
Writeln(IntPrt^);
<<--Error运行到这里出现错误
IntPrt^:=20;
end;
procedure TForm1.Button18Click(Sender: TObject);
var
param:integer;
begin
param:=10;
showmessage(inttostr(param));
ChangeValue(param);
Writeln(param);
showmessage(inttostr(param));
end;
 
象指定的设备文件写一行带回车符的数据。
 
你的writeln往那里输出文本呀?你也没有指定设备文件当然出错了。
 
WriteLn以及一些在System单元里面定义的函数不是真正意义上的函数,而是集合到编译器里面的功能,这些函数不完全符合Delphi的函数定义规则,比如,Delphi里面定义的函数如果有缺省值必须放到所有参数的右边,但WriteLn这样的函数却不是这样,它的第一个参数是可以缺省的,第二个参数是必须的,后面的参数多选。这个类似于dos下的某些命令,所以不要把System单元里面的函数和你了解的函数规则混淆。而且如果你看过System.pas单元的话也会发现,很多System单元里面的函数没有实现代码,其实不是没有,而是版本不同,Borland没有公开编译器内置的所有函数,System.pas只是一个省略版本的文件。
 
var
s : string;
begin
Write('Enter a line of text: ');
Readln(s);
Writeln('You typed: ',s);
Writeln('Hit <Enter> to exit');
Readln;
end;
 
多谢"zqw0117",接受答案!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部