delphi初学者,PASCAL语法问题,调用function出现麻烦,请大虾解答,极易拿分的题!(20分)

  • 主题发起人 主题发起人 rejoise
  • 开始时间 开始时间
R

rejoise

Unregistered / Unconfirmed
GUEST, unregistred user!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
function add(i:integer):integer;{位置1}
private
public
{function add(i:integer):integer
<位置2>
问题1.function 放在位置2与位置1有什么区别,不都是public公共函数吗?}
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
m:integer;
begin
m:=add(3);
button1.Caption:=inttostr(m);
end;
function TForm1.add(i:integer):integer;
{问题2,add函数前面为什么加Tform1,不加不能编译,我看有些原代码没加什么Tform1,到底怎么回事?}
begin
Result := 9;
end;
end.
{请大虾回答我的问题,谢谢了!}
 
1.位置一的函数是object pascal 本身自带的函数
位置二的函数是自定义的函数
2。函数在调用时不加TForm,在定义是要加。
 
错:
1位置可能是public 也可能是published
要看编译选项{$M+} {$M-}
2位置是public

因为你的add函数被定义为TForm1类的一个方法,所以类实现处要写成TForm1.Add
 
同意yxyyyy:
位置1,2定义的都是类tform1的方法,故调用的时候会自动加上tform1.add.
如果你想单独调用一个函数应该在下面的位置
...
...
var
form1:tform1;
function add(i:integer):integer;
implementation
{$R *.DFM}
...
...
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
628
import
I
后退
顶部