Delphi 事件触发!

事件通知!
1.先写一个事件触发类。
unit UNotifyProcess;

interface

uses Windows, Registry, SysUtils, StrUtils, winsock, Classes, Contnrs, Dialogs;

const
  Restart_Stocket = 0;
  Allow_Work = 1;
  Forbid_Work = 2;
type
  TMyNotifyEvent = procedure(Sender: TObject; TaskSign,chn: integer) of object;
 
  TNotifyProcess = class(TObject)
  private
    FOnPopupMenuNotify: TMyNotifyEvent;
  public

    constructor Create();
    procedure ProcessPopupMenuNotify(TaskSign,chn: integer);

  published
    property OnPopupMenuNotify: TMyNotifyEvent read FOnPopupMenuNotify write FOnPopupMenuNotify;
  end;

var
  NotifyProcess: TNotifyProcess;
implementation
constructor TNotifyProcess.Create();
begin

end;

procedure TNotifyProcess.ProcessPopupMenuNotify(TaskSign,chn: integer);
var
  Sender: TObject;
begin
  Sender := nil;
  FOnPopupMenuNotify(Sender, TaskSign,chn);
end;

initialization
  NotifyProcess := TNotifyProcess.Create;

finalization
  NotifyProcess.Free;

end.
2 调用事件。记得引用UNotifyProcess
procedure TFamTestInfo.N1Click(Sender: TObject);
begin
  NotifyProcess.ProcessPopupMenuNotify(Restart_Stocket,chn);
end;


procedure TFamTestInfo.N2Click(Sender: TObject);
begin
   NotifyProcess.ProcessPopupMenuNotify(Allow_Work,chn);
end;


procedure TFamTestInfo.N3Click(Sender: TObject);
begin
  NotifyProcess.ProcessPopupMenuNotify(Forbid_Work,chn);
end;
3. 执行事件  记得引用UNotifyProcess
  private
    { Private declarations }
    procedure OnPopupMenuNotify(Sender: TObject; TaskSign, chn: integer);
在窗体show的时候加入如下代码。
procedure TFrmMain.FormShow(Sender: TObject);
begin
  NotifyProcess.OnPopupMenuNotify := OnPopupMenuNotify;
end;

 procedure TFrmMain.OnPopupMenuNotify(Sender: TObject; TaskSign, chn: integer);
begin
  case TaskSign of
    Restart_Stocket: ReConnectNetWork(chn);
    Allow_Work: SocketClient[chn].SocketAskSend('AA', '00010');
    Forbid_Work: SocketClient[chn].SocketAskSend('AA', '00011');
  end;
end;






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值