起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 212|回复: 9

【搞定】改变界面流程按钮状态?**

[复制链接]
发表于 2007-10-19 16:43:45 | 显示全部楼层 |阅读模式
当存为草稿选中 ,流转按钮为Disable ,否则为可用

1.jpg

17.77 KB, 下载次数: 166

回复

使用道具 举报

发表于 2007-10-19 16:47:28 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-22 14:45:32 | 显示全部楼层
我在我自己的库里 zwjUtils 写了一下代码:
TMyMessage = class(TBizMessage)
  private
    FMsg: String;
  public
    constructor Create(AMsg: String);
    static function Name: string;
    property msg: String read FMsg;
  end;

// 定义消息接收类
type
  TMyMessageHandler = class(TBizMessageHandler)
  private
    FMemo:TMemo;
  public
    procedure DoExecute(AMessage: TBizMessage; const AParam: THandleParam;
      var Handled: Boolean); override;
  end;




implementation
procedure TMyMessageHandler.DoExecute(AMessage: TBizMessage; const AParam: THandleParam;
      var Handled: Boolean);
begin
  if AMessage is TMyMessage then
  begin
    FMemo.Lines.Add((AMessage as TMyMessage).msg);
    Handled := True;
  end;
end;
constructor TMyMessage.Create(AMsg: String);
begin
  inherited Create(TMyMessage.Name);
  FMsg := AMsg;
end;

static function TMyMessage.Name: String;
begin
  Result := FMsg;
end;

然后在界面上 “存为草稿” (这个是数据库一个字段,表现类型为CheckBox) ,在它的OnChange中这样写:
procedure TSWSQNG.DataEdit1Change(Sender: TObject);
var
  lMsg: TMyMessage;
begin
   IF dsbDetail1.DataSet.FieldByName('CWCG').asString :='true' then
   begin
     // 发送消息
  lMsg := TMyMessage.Create('true');
  BizSys.GlobalContext.SendMessage(lMsg);
  lMsg.Free;
   end;
end;

然后那个TMainForm.addMsgHander放到哪里? 然后我怎么访问到那个流程按钮?如果说放到界面上的话。让它访问流程按钮,那么为什么这么麻烦,写个消息?直接控制流程按钮能否使用就行了呗。你给的例子,有些代码没有?另外addMsgHander方法是自己定义吗?应该不是吧,请相信说明。
回复 支持 反对

使用道具 举报

发表于 2007-10-23 15:57:02 | 显示全部楼层
在您的功能窗体发送消息,在标准主窗体处理消息。处理消息时可以修改按钮状态。具体的代码参考2楼的连接。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-24 07:54:09 | 显示全部楼层
我很笨那,不好意思。代码我倒是明白了,就是不知道在哪里写:
发送消息我知道,写在我那个Checkbox的onChange中。然后,那个处理消息的代码写在标准主窗体中吗?(标准主窗体这不就得修改了啊?)。然后这段:
procedure TMainForm.AddMsgHandler; 写在功能窗体中是把,我不明白的是AddMsgHander是窗体自己的事件吗?(要不这段代码怎么起作用)
回复 支持 反对

使用道具 举报

发表于 2007-10-24 11:37:15 | 显示全部楼层
1.需要修改标准主窗体的。
2.AddMsgHander不是窗体标准事件。需要自己调用它,可以在处理消息的窗体里面调用。
回复 支持 反对

使用道具 举报

发表于 2007-10-26 09:17:24 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

发表于 2007-10-30 08:51:01 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

发表于 2007-11-2 09:43:15 | 显示全部楼层
ok没有,无论如何请反馈一下结果
回复 支持 反对

使用道具 举报

发表于 2007-11-7 09:36:19 | 显示全部楼层
看来是没有问题了。此贴子结了。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-30 04:42 , Processed in 0.044443 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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