📄 event1.pas
字号:
unit Event1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TfrmEvents = class(TForm)
GroupBox1: TGroupBox;
btnOpenDatabase: TButton;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
btnGenerateEvent: TButton;
Label1: TLabel;
btnRegisterEvents: TButton;
btnClearEvents: TButton;
lbReceived: TListBox;
ebEvent: TEdit;
moRegister: TMemo;
btnCloseDatabase: TButton;
procedure btnClearEventsClick(Sender: TObject);
procedure btnGenerateEventClick(Sender: TObject);
procedure btnRegisterEventsClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure btnOpenDatabaseClick(Sender: TObject);
procedure btnCloseDatabaseClick(Sender: TObject);
end;
var
frmEvents: TfrmEvents;
implementation
uses Event2, DB, IBDatabase, IBStoredProc;
{$R *.dfm}
procedure TfrmEvents.btnClearEventsClick(Sender: TObject);
begin
lbReceived.Clear;
end;
procedure TfrmEvents.btnGenerateEventClick(Sender: TObject);
begin
with dmEvents do
begin
IBTransaction1.StartTransaction; //启动事务
StoredProc1.Prepare;
StoredProc1.Params[0].AsString := ebEvent.Text; //指定事件名到存储过程
StoredProc1.ExecProc; //执行存储过程
IBTransaction1.Commit; //永远存储修改
end;
end;
procedure TfrmEvents.btnRegisterEventsClick(Sender: TObject);
begin
with dmEvents.IBEventAlerter1 do
begin
UnregisterEvents; //注册前,先清除已经注册的事件
Events.Assign(moRegister.Lines); //指定事件名
RegisterEvents; //注册事件
end;
end;
procedure TfrmEvents.FormDestroy(Sender: TObject);
begin
with dmEvents do
begin
IBEventAlerter1.UnregisterEvents; //取消已经注册的事件
Database1.Connected := False; //关闭数据连接
end;
GroupBox2.Enabled := False;
GroupBox3.Enabled := False;
GroupBox4.Enabled := False;
Label1.Enabled := False;
btnGenerateEvent.Enabled := False;
btnRegisterEvents.Enabled := False;
btnClearEvents.Enabled := False;
end;
procedure TfrmEvents.btnOpenDatabaseClick(Sender: TObject);
begin
dmEvents.Database1.Connected := True; //真正打开数据库
//打开数据库后,下面的按钮才被允许
GroupBox2.Enabled := True;
GroupBox3.Enabled := True;
GroupBox4.Enabled := True;
Label1.Enabled := True;
btnGenerateEvent.Enabled := True;
btnRegisterEvents.Enabled := True;
btnClearEvents.Enabled := True;
btnCloseDatabase.Enabled := True;
btnOpenDatabase.Enabled:=False;
end;
procedure TfrmEvents.btnCloseDatabaseClick(Sender: TObject);
begin
//先取消注册到数据库的事件
dmEvents.IBEventAlerter1.UnregisterEvents;
//再关闭数据
dmEvents.Database1.Connected := False;
//禁止下面的按钮,因为数据库关闭,无法注册事件,也无法产生事件
GroupBox2.Enabled := False;
GroupBox3.Enabled := False;
GroupBox4.Enabled := False;
Label1.Enabled := False;
btnGenerateEvent.Enabled := False;
btnRegisterEvents.Enabled := False;
btnClearEvents.Enabled := False;
btnCloseDatabase.Enabled := False;
btnOpenDatabase.Enabled := True;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -