delphi入门一问?(50分)

  • 主题发起人 主题发起人 squire
  • 开始时间 开始时间
S

squire

Unregistered / Unconfirmed
GUEST, unregistred user!
如果是delphi中自己定义的类中的方法,好像不用创建这个类的实例,也可以在其他的unit中调用。
如果是delphi中自己定义的类中的变量,就必创建这个类的实例,才能在其他的unit中访问。
为什么呀?都应该是创建实例,即调用creat以后才能调用或访问呀?
刚刚入门?问题也许有些愚昧,谢谢
 
方法不是对象。
 
如果是类方法(不是类中的方法)或函数就不需要创建实例,否则调用方法一定要创建实例的
 
比如:
type
TMyClass = class
public
i:integer;
procedure HeHe;
private
end;
var
MyClass: TMyClass;
_____________________________________________________
在另外的一个unit中,我调用MyClass.HeHe 没问题
可是不能调用MyClass.i
why?
 
MyClass.HeHe 没问题?
不可能!
把你的完整代码贴出来
 
代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.dfm}
uses Unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin
MyClass.HeHe;
end;

end.

unit Unit2;
interface
type
TMyClass = class
public
procedure HeHe;
end;

var
MyClass: TMyClass;
implementation
{ TMyClass }
uses Unit1;
procedure TMyClass.HeHe;
begin
Form1.Caption := 'HeHe';
end;

end.

运行编译都没有问题!
 
MyClass.i使属性啊,怎样调用?顶多读取或负值吧?
 
我是这样做的,也成功了!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, unit2,[red]/*注意这里*/[/red]StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
MyClass: TMyClass;
implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
myclass.hehe;
end;

end.

unit Unit2;
interface
type
TMyClass = class
public
procedure HeHe;
end;

var
MyClass: TMyClass;
implementation
{ TMyClass }
uses Unit1;
procedure TMyClass.HeHe;
begin
Form1.Caption := 'HeHe';
end;

end.
 
hehe,看来类中的方法不用creat实例也可以直接用!
 
多人接受答案了。
 
后退
顶部