起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: jianth2005

【结贴】我在主窗体右边添加了两个像“业务关联”的菜单问题**

[复制链接]
 楼主| 发表于 2009-5-7 15:06:32 | 显示全部楼层
你终于了解我的需求了
回复 支持 反对

使用道具 举报

发表于 2009-5-7 15:18:16 | 显示全部楼层
不是我不理解你的意思,是你压根没按我说的意思去做。
我上面的做法就是根据54的方式做的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-7 15:24:46 | 显示全部楼层
那你可不可以把这个Demo发给我研究研究下?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-7 16:06:53 | 显示全部楼层
54楼中说道“if SysUtils.UpperCase(AContainer.FuncURL) = SysUtils.UpperCase(Variants.VarToStr(lParam.Value)) then//参数值与当前运行的功能url相符
    HideDocRelevancyNavBar//这个方法里面你可以控制相关的bar,这个是系统的方法,不建议你去修改,你自己加一个类似的方法去控制你的bar
    else
       ShowRelevancyNavBar
4、在标准风格主窗体中的ShowContainer事件中也加上类似的逻辑判断

这里有些不太明白,所以希望 zfang 可以共享一下。
回复 支持 反对

使用道具 举报

发表于 2009-5-7 16:17:13 | 显示全部楼层
无语,我上面给你的链接,你说看过多遍,会那个,那这里怎么就不明白了呢?

我这里是这样子改造的
procedure TSTANDARDSTYLEMAINFORM.ShowRelevancyNavBar;
begin
  if not FRelevancyNavBarShowing and actRelevancy.Checked then //and IsShowRelevancyNavBar then
  begin
    FRelevancyNavBarShowing := True;
    DockStub.BeginUpdate;
    try
      DockStub.AddClient('Pgl', Pgl, nil);
      DockStub.ShowClient(pgl);
      //Panel1
      DockStub.HideControl(Panel1);
      DockStub.RemoveClient(Panel1);
      //DockStub.AddClient('RelevancyNavBar', FRelevancyNavBar, nil);
      //DockStub.ShowClient(FRelevancyNavBar);
    finally
      DockStub.EndUpdate;
    end;

  end;
end;

procedure TSTANDARDSTYLEMAINFORM.HideRelevancyNavBar;
begin
//  Exit; // TODO: 一直显示

  DockStub.BeginUpdate;
  try
    DockStub.AddClient('Panel1', Panel1, nil);
    DockStub.ShowClient(Panel1);
    DockStub.HideControl(Pgl);
    DockStub.RemoveClient(Pgl);
    //DockStub.HideControl(FRelevancyNavBar);
    //DockStub.RemoveClient(FRelevancyNavBar);
  finally
    DockStub.EndUpdate;
  end;
  FRelevancyNavBarShowing := False;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-7 17:38:57 | 显示全部楼层
ShowRelevancyNavBar和HideRelevancyNavBar 已经改成与65楼一样的了,但是有点不明白的地方,就是54楼中“ 3、在标准风格主窗体中的uirunfunc事件中加上这样的逻辑判断
  //参数获取  
  lParam := SYSTEMUTILS.TContextUtils.GetParam(Context,'Biz:\CSLZ\DICT\QJYWCS.ParamGroup','GNURL');
    if Variants.VarToStr(lParam.Value) <> '' then//参数值
  if SysUtils.UpperCase(AContainer.FuncURL) = SysUtils.UpperCase(Variants.VarToStr(lParam.Value)) then//参数值与当前运行的功能url相符
    HideDocRelevancyNavBar//这个方法里面你可以控制相关的bar,这个是系统的方法,不建议你去修改,你自己加一个类似的方法去控制你的bar
    else
       ShowRelevancyNavBar
”  我觉得这个与我在uirunfunc函数中所写的“//窗体等于某个URL的时候就显示否则隐藏 ************QL  2009-02-19******************
   if (SysUtils.UpperCase(AFuncURL) = SysUtils.UpperCase('Biz:\SQWSFWGLXT_X_\RYCX.FUNC'))   or // 个人健康档案资料查询
      (SysUtils.UpperCase(AFuncURL) = SysUtils.UpperCase('Biz:\SQWSFWGLXT_X_\JKJC.FUNC'))   or // 健康检查表
      (SysUtils.UpperCase(AFuncURL) = SysUtils.UpperCase('Biz:\SQWSFWGLXT_X_\JKPJB.FUNC'))  or // 健康评价表
      (SysUtils.UpperCase(AFuncURL) = SysUtils.UpperCase('Biz:\SQWSFWGLXT_X_\FNJCB.FUNC'))  or // 妇女健康检查
      (SysUtils.UpperCase(AFuncURL) = SysUtils.UpperCase('Biz:\SQWSFWGLXT_X_\FNPJB.FUNC'))  or // 妇女健康评价
      (SysUtils.UpperCase(AFuncURL) = SysUtils.UpperCase('Biz:\SQWSFWGLXT_X_\JTJKDAZJM.FUNC')) // 家庭健康档案主界面
   then
     ShowRelevancyNavBar
   else
     HideDocRelevancyNavBar ;”
是同一个意思,为什么还没能实现我的需求呢?
回复 支持 反对

使用道具 举报

发表于 2009-5-7 21:49:12 | 显示全部楼层
我真无语了,楼主你整了半天还是没整明白呀(不清楚你上面说的你会那个是怎么来的),问题的关键不在于这里,在于改造65楼的代码。
uirunfunc还是可以用你自己原来的代码呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-8 09:24:20 | 显示全部楼层
我也晕了
我已经按照65楼的来改了,
改了以后,【健康档案建档与查询】一直没显示

shouhide.jpg

66.58 KB, 下载次数: 94

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-5-8 09:26:02 | 显示全部楼层
运行效果

cx.jpg

22.82 KB, 下载次数: 115

回复 支持 反对

使用道具 举报

发表于 2009-5-8 09:40:42 | 显示全部楼层
那就要检查你那个uirunfunc和ShowContainer中的代码了。

我看你66楼说的uirunfunc中的代码(不知道你是按我说的那种方式还是用66楼你原来的代码方式)中,如果是按66楼的代码,那我看下面的调用方法不对吧。跟你改造的方法匹配吗???请楼主好好看清楚一下。
then
     ShowRelevancyNavBar
   else
     HideDocRelevancyNavBar
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-21 16:59 , Processed in 0.041892 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表