捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:关于主窗体与子窗体之间的调用一点技巧
zh2000 29891 2007/6/9 15:54:29
为什么我通过主菜单来打开要点两次才能打开呀!

将...上面代码 修改为以下试试...我试了可以了,不知道长期有没有问题...:)

 if createform(Form1)=false then //判断是否创建,有就显示
  begin
  Form1:=tForm1.Create(application); //没有则创建
  Form1.Show ;
  end;
iamdream 27783 2007/1/10 21:16:03
看看偶自己用的函数:
function FindFormFromScreen(const sFormName: String): TCustomForm;
var          //通过名称查找窗体
  I: Integer;
begin
  Result := nil;
  for I := 0 to Screen.CustomFormCount-1 do
    if Screen.CustomForms[I].Name = sFormName then begin
      Result := Screen.CustomForms[I];
      Break;
    end;
end;

function CreateForm(const sFormName: String; AFormClass: TCustomFormClass;
    var AForm: TCustomForm; bShow: Boolean): Boolean;
begin          //创建窗体 MDIChild 不需要 AForm.Show, 即 bShow 应 = False.
  Result := False;
  AForm  := FindFormFromScreen(sFormName);
  if AForm = nil then begin
    AForm  := AFormClass.Create(Application);
    Result := True;
  end;
  if bShow and Assigned(AForm) then  AForm.Show;
end;

调用:   CreateForm('JobListForm', TJobListForm, TCustomForm(JobListForm));
stuwe 27525 2006/12/27 10:20:26
确属初级
xinhua 27282 2006/11/23 16:36:52
为什么我通过主菜单来打开要点两次才能打开呀!
sutao 27201 2006/11/18 13:40:27
初级
shugeng 27199 2006/11/18 10:04:21
兄弟不错,我正愁这个事情怎么解决,以前的思路和你这个一样,但总出问题谢谢了!
520god 27149 2006/11/14 22:32:21
不错
第一页 上一页 下一页 最后页 有 7 条纪录 共1页 1 - 7
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表