使用其它文件中定义的类时出现错误_这是小弟毕业设计中急需解决的问题sos(20分)

  • 主题发起人 主题发起人 zyhkernel
  • 开始时间 开始时间
Z

zyhkernel

Unregistered / Unconfirmed
GUEST, unregistred user!
请各位大虾帮忙看看:在一个类中使用其他单元定义的一个类.

这是我在UwordAnalyze.pas中定义的一个类:
unit UwordAnalyze;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls,UwordList,Math;

type
TWordAnalyze=class
private
{private declarations}
sourceFile:File of char
//变量成员定义
testFile:File of string[8];
……
procedure readCh(var ch:char)
//方法定义
procedure noBlank(var ch:char);
……
public
{public declarations}
fileDir:string;
function connect(fileDir:string):Boolean

procedure scanner()

……
end;

implementation //以下是对各种方法的实现

procedure readCh(var ch:char);
begin
……
end;

……
……

end.
------------------------------------------------------------------------
后来我在程序中使用以上定义的这个类
unit Umain
//Umain.pas
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls,UwordList,Math,UwordAnalyze
//引用了上面的那个单元

type
TMainForm = class(TForm)
OpenDialog1: TOpenDialog;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
wordAnalyze:TWordAnalyze
//再这里引用了以上定义的那个类
procedure OpenClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
MainForm: TMainForm;

implementation

{$R *.dfm}

……
……
procedure TMainForm.Button2Click(Sender: TObject)
//在这里用到了这个类,并将其实例化
begin
if OpenDialog1.Execute then
begin
wordAnalyze:=TWordAnalyze.Create;
wordAnalyze.fileDir:=OpenDialog1.FileName;
if wordAnalyze.connect(wordAnalyze.fileDir) then
wordAnalyze.scanner;
end;
end;

end.

编译时提示错误:Field MainForm.wordAnalyze does not have a corresponding component. Remove the declaration?
我觉得这可能是在类定义和使用中缺了什么东西,可是我翻遍全书还是找不到答案(因为书中的例子都是在本单元内对定义的类进行实例化的)。实在没有办法才来麻烦大家给看一看问题究竟处在哪儿?
请各位高手不吝赐教,这个问题对我很重要。谢谢!
 
不能放在那里定义的,那里默认为published。
可以放在private或public的后面。

明白了吗
 
unit UwordAnalyze;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls,UwordList,Math;

type
TWordAnalyze=class
private
{private declarations}
sourceFile:File of char
//变量成员定义
testFile:File of string;
……
procedure readCh(var ch:char)
//方法定义
procedure noBlank(var ch:char);
……
public
{public declarations}
constructor Create;
fileDir:string;
function connect(fileDir:string):Boolean

procedure scanner()

……
end;

implementation //以下是对各种方法的实现

constructor TWordAnalyze.Create;
begin
inherited;
end;

procedure TWordAnalyze.readCh(var ch:char);
begin
……
end;

……
……

end.
 
后退
顶部