Намираме номенклатурата и дейтамодула й където ще добавяме нов ЕВЕНТ (събитие) на което ще закачаме справки
В DM файла правим следните добавки
Описание на евента - в types описваме евента TMyNewEvent = class(TMultiCastNotifyEvent) end;
Регистрация - Добавяме в initialization частта регистрация на евента BaseEventRegister.RegisterEvent(TXXXXXXX_DM, 'TMyNewEvent', sNameOfTheEvent);
в В published добавяме евента като property: property OnMyEvent: TMyNewEvent read fOnMyEvent write fOnMyEvent;
намираме процедурата за създаване procedure InitializeEvents; override; и го създаваме: fOnMyEvent := TMyNewEvent.Create(nil); Заб. Ако документа няма типове, то тук може да добавим всички свързани към него справки/скриптове описано в т. 7
В procedure DataModuleDestroy(Sender: TObject); добавяме освобождаването - if Assigned(fOnMyEvent) then fOnMyEvent.Free;
В private частта добавяме процедурата procedure DoOnMyEvent(Sender: TObject); - Процедурата изглежда приблизително така
procedure TXXXXX_DM.DoOnMyEvent(Sender: TObject);
begin
.... тук е текста на самият евент
end;
Свързване на процедура в евент -
if ActionViewLinks.HaveLinksFor(Self.ClassName, DocumentType, 'TMyNewEvent') then
begin
if OnMyEvent.Count = 0 then
OnMyEvent.Add(DoOnMyEvent);
end
else if OnMyEvent.Count > 0 then
OnMyEvent.Remove(DoOnMyEvent);
В модула на номенклатурата просто остава да поставим на бутон или на каквото искаме да се извиква този евент
f Assigned(DM) and Assigned(TXXXXX_DM(DM).OnMyEvent) then
TXXXXX_DM(DM).OnMyEvent.DoEventFor(DM);