相同的函数,不同的结果,怎么回事?(30分)

  • 主题发起人 主题发起人 johnrain
  • 开始时间 开始时间
J

johnrain

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个单元中我:当函数如下声明时:提示找不到‘findcomponent’函数;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Function Box(tt:integer):Tbutton;
begin
//......
Result:=TButton( FindComponent('Button1'));
end;
end.
而当我如下声明时:则没有问题
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
Function Box(tt:integer):Tbutton;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Function TForm1.Box(tt:integer):Tbutton;
begin
//......
Result:=TButton( FindComponent('Button1'));
end;
end.
请问这是这么回事??!!
 
你的第一个好象没有声明box吧
FindComponent是Tcomponent
在第一个中在box中没有Tcomponent
FindComponent不知道自己是谁
而第二个中实际上是
Result:=TButton( Form1.FindComponent('Button1'));

 
第一种情况这么写 :
Result:=TButton( Form1.FindComponent('Button1'));
 
你没有声明地function:BOX
 
BOX声明。
 
多人接受答案了。
 
后退
顶部