问这个问题,说明你类型和实例两个概念混淆不清。
Self.Close可以写成Close
当然,通常情况下也可以用form1.Close
^^^^^^^^
弄清楚type和instance两个概念后,这就不是问题了。
Self.Close可以写成Close
当然,通常情况下也可以用form1.Close
^^^^^^^^
弄清楚type和instance两个概念后,这就不是问题了。
解决方案 »
- 招聘感想(含面试题)
- Dephi 版的高手帮忙 看下这个 问题吧,Type 'Byte' is not yet completely defined
- invalid pointer operation 提示,高手帮忙分析,100分
- DELPHI7組件安裝問題?
- 如何用delphi 编写一个打包工具
- help me,这几个函数怎么用--资料太少了
- 高分相求:关于DELPHI7编写简单网络文件传输的程序问题?紧急在线等待中. . .
- 如何获得我点击的菜单项的items[X] X是第几???
- 哪里有中国象棋棋子图形下载?
- 有谁能提供关于弹性业务流程方面的相关资料,仅工作流的也可以,感激不尽!(可加分)
- 菜鸟求救:关于动态产生的按钮怎样编辑它的点击事件,给分100
- 为什么删除记录时提示:键列信息不够或不正确,影响到过多的行
form1.close;同样可以使用!
TForm1是类,form1是类的实例--类似于人这个概念和具体某个人(如甲)
在人的实现代码中你可以写self来指代自身,但无法写甲.*。
不过如果你在其他Unit调用倒是可以写form1.close.
要将本窗体中的所有Edit控件清空,本窗体是MDI子窗体(FormStyle:fsMDIChild)
TForm1.Button1Click(Sender:Object);
var
i:integer;
begin
for i:=0 to self.ComponentCount-1 do
if (self.Components[i] is TEdit) then
(self.Components[i] as TEdit).Text:='';
end;
将上面的self换成Form1是绝对不行的!!
但是如果该窗体是一个一般窗体(FormStyle:fsNormal)则可以。
我的理解是MDI子窗体可以用一个窗体类创建出许多个一模一样的窗体(包括名字,比如都叫Form1),此时如果引用Form1是不行的,只能用self。
begin
end;
里写form1.XXX?
那不成了Form1.Form1.XXX
Type TForm1=Class(TForm)
...
procedure X(...)
begin
Form1.XXX;
end
...
end;
实例定义里调用自己这个实例明显是错误的,只能用Self指针指向
你说的两个错误,根本就不是错误,是正确的(第二个中不要忘了在implementation前面加上var Form1:TForm1;)。你自己试试。