起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: 巧克力味

【结贴】同时可以打开两个邮件,而且关闭也会报错,**

[复制链接]
 楼主| 发表于 2008-11-14 14:18:50 | 显示全部楼层
确定修改后编译迁入刷新缓存了,
但是真的还七楼那样的效果!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-14 14:21:55 | 显示全部楼层

1

1

代码1.png

15.43 KB, 下载次数: 93

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-14 14:22:58 | 显示全部楼层

2

2

代码2.png

3.78 KB, 下载次数: 91

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-14 14:23:44 | 显示全部楼层

3

3

3.png

31.95 KB, 下载次数: 89

回复 支持 反对

使用道具 举报

发表于 2008-11-14 14:31:51 | 显示全部楼层
12楼中的代码中再增加一句再试试。
   TSystemCore.FuncManager.ActivateFunc(TSystemCore.FuncManager.RunningFuncs[I]);//增加
      lFuncIsRunning := True;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-14 14:44:47 | 显示全部楼层

加了!

加了,还是没有反应!

4.png

12.16 KB, 下载次数: 88

回复 支持 反对

使用道具 举报

发表于 2008-11-14 15:39:27 | 显示全部楼层
业务模型\协同系统\个人事务\邮件服务
Invoke事件中的代码贴出来看一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-15 12:34:26 | 显示全部楼层

代码

unit MAILSERVICEFUNC;

interface

uses
  Business.System, Business.Model, Business.Forms, Business.Data, SYSTEMUTILS,
  SystemCore, JUSTEPMAIL;

type
  TMAILSERVICEFUNC = class(TFunc)
  private
    FRunMailMethod: TRunMailMethod;
  protected
    procedure DoRun; override;
    procedure DoTerminate; override;
  end;

  TRunMailMethod = class(TBusinessRuntimeServerMethod)
    function GetName: string; override;
    function Invoke(var Params: array of object): object; override;
  end;

implementation

procedure TMAILSERVICEFUNC.DoRun;
begin
  inherited;
  FRunMailMethod := TRunMailMethod.Create;
  BizRtSrvr.BusinessRuntimeServer.RegisterMethod(FRunMailMethod);
end;

procedure TMAILSERVICEFUNC.DoTerminate;
begin
  BizRtSrvr.BusinessRuntimeServer.UnregisterMethod(FRunMailMethod);
  FRunMailMethod.Free;
  inherited;
end;

{ TRunMailMethod }

function TRunMailMethod.GetName: string;
begin
  Result := 'OpenMail';
end;

function TRunMailMethod.Invoke(var Params: array of object): object;
var
  I: Integer;
  S, lMailGUID: string;
  lFunc: TFunc;
  lFuncIsRunning: Boolean;
begin
  lMailGUID := Params[0] as System.String;
  S := 'Biz:\COLLABORATION\JustepMail.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 lFuncIsRunning then//.RunningFuncs[I].BizClassURL.BizURL.URL = 'Biz:\COLLABORATION\JustepMail.Func' then
       TJUSTEPMAIL(TSystemCore.FuncManager.RunningFuncs[I]).OpenMsgMail(lMailGUID)
    else
      TSystemCore.FuncManager.RunFunc(TSystemCore.Operator.Context,
        'Biz:\COLLABORATION\JustepMail.Func',
        'Biz:\COLLABORATION\JustepMail.Func',
        '-f收件箱' + ' ' + '-l' + lMailGUID,
        nil, False);
end;


end.
回复 支持 反对

使用道具 举报

发表于 2008-11-15 13:23:32 | 显示全部楼层
功能应该激活了吧,只是查看邮件弹出的窗体没在最上面吧?
设置那个邮件窗体,让他始终在最上面就行了。窗体样式=fsStayOnTop
回复 支持 反对

使用道具 举报

发表于 2008-11-17 08:59:59 | 显示全部楼层
TSystemCore.FuncManager.RunFunc(TSystemCore.Operator.Context,
        '',  //这里改成空看看。
        'Biz:\COLLABORATION\JustepMail.Func',
        '-f收件箱' + ' ' + '-l' + lMailGUID,
        nil, False);
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-27 15:26 , Processed in 0.044958 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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