起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 685|回复: 21

【结贴】RunFunc功能间调用**

[复制链接]
发表于 2008-11-11 09:55:07 | 显示全部楼层 |阅读模式
用SystemCore.TSystemCore.FuncManager.RunFunc()实现:A功能调用B功能

如果B功能已存在,则把存在的B功能激活
如果B功能不存在,则创建
回复

使用道具 举报

 楼主| 发表于 2008-11-11 10:16:39 | 显示全部楼层
用的是3088版本
回复 支持 反对

使用道具 举报

发表于 2008-11-11 10:19:54 | 显示全部楼层
参考【业务模型\系统空间\简洁风格\界面库\窗体库\标准风格主窗体】
UIRunFunc
回复 支持 反对

使用道具 举报

发表于 2008-11-11 10:26:44 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-11 11:47:56 | 显示全部楼层
哎~~~看了半天,很多地方不明白,
看下我的错误,帮忙改正一下.

111.jpg

65.01 KB, 下载次数: 259

回复 支持 反对

使用道具 举报

发表于 2008-11-11 11:54:06 | 显示全部楼层
你参考这个代码吧。
procedure TMAINFORM.Button5Click(Sender: TObject);
var
  I: Integer;
  S: string;
  lFunc: TFunc;
  lFuncIsRunning: Boolean;
  tmpUniqueId:string;
begin
  //被调用的功能url
  S := 'Biz:\CSLZ\GNA.Func';
  for I := 0 to TSystemCore.FuncManager.RunningFuncCount - 1 do
    if SysUtils.UpperCase(TSystemCore.FuncManager.RunningFuncs[I].BizClassURL.BizURL.URL) = SysUtils.UpperCase(S) then
    begin
      lFuncIsRunning := True;
      break;
    end
    else
      lFuncIsRunning := False;
  if not lFuncIsRunning then
    SystemCore.TSystemCore.FuncManager.RunFunc(Context.Parent,'',SysUtils.UpperCase(S) ,  '', nil, False)
  else
  begin
    tmpUniqueId:= SYSTEMCORE.TFuncManager.GetFuncUniqueID(context.parent, SysUtils.UpperCase(S),'');
    lFunc:= SYSTEMCORE.TSYSTEMCORE.FuncManager.FindRunning(tmpUniqueId);

    TSystemCore.FuncManager.ActivateFunc(lFunc) ;
  end;

end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-11 16:27:22 | 显示全部楼层
如果没有传递参数的时候,是没有问题的
但是一有参数,没能正确的激活相应的窗体
试了好久,没能解决,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-11 17:20:58 | 显示全部楼层
这个功能是用了参数来创建的S := 'Biz:\CSLZ\GNA.Func'
返回的时候,就不能激活相应的功能了!!
大哥大姐,帮帮忙啊
回复 支持 反对

使用道具 举报

发表于 2008-11-12 08:55:28 | 显示全部楼层
既然已经返回了tfunc对象,就可以调用  TSystemCore.FuncManager.ActivateFunc(lFunc) ;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-12 09:02:00 | 显示全部楼层
是可以调用TSystemCore.FuncManager.ActivateFunc(lFunc) ;
但是调用之后,激活的窗体不是我想要的!
激活错误!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-26 20:28 , Processed in 0.136850 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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