f_sl_kh:=Tf_sl_kh.Create(self);
f_sl_kh.tag := 1;
f_sl_kh.Show;我碰到问题了,跟踪程序发现,当Tf_sl_kh.create后,便跳到f_sl_kh的formshow事件里去了。而该事件里有个判断 if f_sl_kh.Tag = 1 then
而正如各位可以看到的, f_sl_kh.tag := 1; 在 f_sl_kh:=Tf_sl_kh.Create(self); 的下一行。
程序便出错了。
谁可以告诉我,为什么当Tf_sl_kh.create后不是执行下一行代码 f_sl_kh.tag := 1; 反而会跳到f_sl_kh的formshow事件里去了呢? f_sl_kh:=Tf_sl_kh.Create(self);
f_sl_kh.tag := 1;
f_sl_kh.Show;我碰到问题了,跟踪程序发现,当Tf_sl_kh.create后,便跳到f_sl_kh的formshow事件里去了。而该事件里有个判断 if f_sl_kh.Tag = 1 then
而正如各位可以看到的, f_sl_kh.tag := 1; 在 f_sl_kh:=Tf_sl_kh.Create(self); 的下一行。
程序便出错了。
谁可以告诉我,为什么当Tf_sl_kh.create后不是执行下一行代码 f_sl_kh.tag := 1; 反而会跳到f_sl_kh的formshow事件里去了呢?大家帮帮忙,看出原因的请指教!
f_sl_kh.tag := 1;
f_sl_kh.Show;我碰到问题了,跟踪程序发现,当Tf_sl_kh.create后,便跳到f_sl_kh的formshow事件里去了。而该事件里有个判断 if f_sl_kh.Tag = 1 then
而正如各位可以看到的, f_sl_kh.tag := 1; 在 f_sl_kh:=Tf_sl_kh.Create(self); 的下一行。
程序便出错了。
谁可以告诉我,为什么当Tf_sl_kh.create后不是执行下一行代码 f_sl_kh.tag := 1; 反而会跳到f_sl_kh的formshow事件里去了呢? f_sl_kh:=Tf_sl_kh.Create(self);
f_sl_kh.tag := 1;
f_sl_kh.Show;我碰到问题了,跟踪程序发现,当Tf_sl_kh.create后,便跳到f_sl_kh的formshow事件里去了。而该事件里有个判断 if f_sl_kh.Tag = 1 then
而正如各位可以看到的, f_sl_kh.tag := 1; 在 f_sl_kh:=Tf_sl_kh.Create(self); 的下一行。
程序便出错了。
谁可以告诉我,为什么当Tf_sl_kh.create后不是执行下一行代码 f_sl_kh.tag := 1; 反而会跳到f_sl_kh的formshow事件里去了呢?大家帮帮忙,看出原因的请指教!
解决方案 »
- delphi 中强制类型转换不成功奇怪呀
- ||||||||复旦大学老师给我出的题目|||请教|||||||||关于多线程
- delphi 多线程实时通讯 求救
- 图片显示问题:怎样将从sql2000中读出的图片按照界面image的控件同样大小尺寸显示出来?
- 我想再注册表里判断一个值,决定系统是否启动的问题
- 如何在dbgrid或者别的数据库网格中加入dbcheckbox或者其它checkbox控件
- 一个我认为比较棘手的SQL问题(字段值分离统计查询)
- 大家好,新手报道,请多多指教
- Delphi大師救命啦!!!
- 在DELPHI中怎样将目录中的文件和目录逐条查询或显示出来并反映到List控件上
- 系统是如何利用parameter与后台数据库中的数据进行是否相等的比较?
- 见了鬼了!时间控件不听使唤了。。。
f_sl_kh:=Tf_sl_kh.Create(self);
返回以前,OnShow实际已经被调用了,而默认,tag是等于0的,除非你设置了,所以
if f_sl_kh.Tag = 1 then
的判断出乎你的意料了是不是这样?随便说说,
如:
if (f_sl_kh.Tag = 1) and (pvShow=1) then
begin
end
else begin
pvShow := 1;
end;
呵呵……
的确如此。
贴子示众7天,让感兴趣的人看看,然后结贴。
在Tf_sl_kh类中写另一个构造函数,在这个构造函数中设f_sl_kh.tag := 1,然后再调用原来的构造函数
大体如下:
Constructor MyCreate(AOwner:TComponent);
begin
f_sl_kh.tag := 1;
Create(AOwner);
end;
f_sl_kh.tag := 1;
f_sl_kh.Show;
放在form的oncreate里就是你想要的了
procedure TForm1.Button1Click(Sender: TObject);
begin
form2:=TForm2.Create(self);
form2.Tag:=1;
form2.Show;
end;form2
procedure TForm2.FormShow(Sender: TObject);
begin
if form2.Tag = 1 then
begin
showmessage('test');
end;
end;
没遇到问题,不过如果屏蔽了这行//Application.CreateForm(TForm2, Form2);再FORM2 的 visible =ture 的话 就会报错,原因应该 正如alphax(英文水皮士) 说的那样。