本人刚写程序
1:我想了解一下代码如何使其安全性,哪些窗体需要FREE掉,例如像MDI窗体中的模式窗体,不FREE掉也可以,FREE掉有什么作用?还用一些控件动态生成的例子:MyTemp:=Tadoquery.Create(self/nil):这两种对比结果如何?是不是一样的,只要将self的FREE掉结果一样。
2:(Sender:Tobject)中的Sender的明确作用是什么?owner和parent有什么区别?
TempForm:=Ttempform.Create(self/application):中建立窗体有什么区别?各位大侠如何知道的请帮帮小弟,能答多少的则答多少?谢谢!!!
1:我想了解一下代码如何使其安全性,哪些窗体需要FREE掉,例如像MDI窗体中的模式窗体,不FREE掉也可以,FREE掉有什么作用?还用一些控件动态生成的例子:MyTemp:=Tadoquery.Create(self/nil):这两种对比结果如何?是不是一样的,只要将self的FREE掉结果一样。
2:(Sender:Tobject)中的Sender的明确作用是什么?owner和parent有什么区别?
TempForm:=Ttempform.Create(self/application):中建立窗体有什么区别?各位大侠如何知道的请帮帮小弟,能答多少的则答多少?谢谢!!!
2.Sender为当前执行命令的对象,你可在其事件中查其ClassName;owner与parent区别是owner是拥有者(宿主),而parent为显示其上者;若button1这owner为form1,parent为form2,则其会在form2上显示,但当form窗体free后button1不复存在;self/application区别是self以当前对象(如窗体)为宿主,application以工程为宿主,其为全局性的
3.combobox.items.add会返回一个行号,而combobox.items.append只完成添加动作而无行号
如果是nil ,那么需要程序员自己释放资源
其它的都有程序自动释放
-----------
MDI窗体中的MDIChild窗体,不用Free,而是Close里面写Action:=caFree;
---------
Sender 只是个参数,一般是系统负责传递,表示当前对象
如: Button1Click(Sender :Tobject)
begin
showmessage((Sender as TButton).Name); //可以多个Button共用这一个事件
end
-----------
owner代表所有者,parent是谁负责显示
----------
TempForm:=Ttempform.Create(self/application):
此时self代表当前窗体
application代表程序是窗体TempForm的所有者
-------------
combobox.items.add和combobox.items.append 没区别
实际的代码
combobox.items.add
function TStrings.Add(const S: string): Integer;
begin
Result := GetCount;
Insert(Result, S);
end;
------
combobox.items.append
procedure TStrings.Append(const S: string);
begin
Add(S);//就是TStrings.Add ,换了名字而已
end;
begin
form2:=nil;
end;
此窗体是MDI子窗体,我想问一下这句话是什么意思,到底有什么作用?(我知道的是片面就是窗体消失时将其指针为零对不对,但是我不知道有什么作用?)