初学者问题:我想把一些常用的函数定义成一个类,放在一个单独的Unit文件中,但是调用时出错。(50分)

  • 主题发起人 主题发起人 龙行天下
  • 开始时间 开始时间

龙行天下

Unregistered / Unconfirmed
GUEST, unregistred user!
我的类文件:myunit
类名:
type
Tmyunits = class
private
n : integer;
public
procedure setn(x:integer);
end;
Tmyunits.procedure setn(x:integer);
begin
n := x;
end;

在Unit1中
use myunit, forms, ....
var
myunits: Tmyunits;
implementation
...
procedure TForm1.Button1Click(Sender: TObject);
begin
myunits.setn(123);
end;

运行,点击Button1就报错。
跟踪程序,发现类过程
Tmyunits.procedure setn(x:integer);
begin
n := x
// ①
end;
①处:n不可访问。

请各位大侠指教一下,如何解决?我希望各个窗体文件都能共享Tmyunits。

 
这个类必须初始化,不过不必做成类,放在一个单元里就行了。
常用函数可分类放入不同的单元,需要是就引用此单元,就像
delphi的sysutils单元之类。
 
同意楼上,确实没有初始化,加上myunits:=tmyunits.create;试一下.
 

你这个错误很明显的/
首先你的那个单元的函数就错了,应该是这样的。
我的类文件:myunit
类名:
type
Tmyunits = class
private
n : integer;
public
procedure setn(x:integer);
end;
procedure Tmyunits.setn(x:integer);
begin
n := x;
end;


另外,你定义的对象,还没有创建呢,应该这样:

procedure TForm1.Button1Click(Sender: TObject);
begin
myunits :=Tmyunits.create;
myunits.setn(123);
end;

这样就对了。给分吧。



 
唉,来晚了~~~~
 
白来了。也发点儿分吧。
 
这些公用函数,没必要定义在类中
 
哥们,la le shi zen mo bu ca pi gu a !
procedure TForm1.Button1Click(Sender: TObject);
begin
myunits :=Tmyunits.create;
myunits.setn(123);
myUnits.Free;
end;
 
多人接受答案了。
 
后退
顶部