Инструменти за потребители

Инструменти за сайта


spravki_new:create_event

Създаване на евенти за закачане на справки

Намираме номенклатурата и дейтамодула й където ще добавяме нов ЕВЕНТ (събитие) на което ще закачаме справки

В DM файла правим следните добавки

  1. Описание на евента - в types описваме евента TMyNewEvent = class(TMultiCastNotifyEvent) end;
  2. Регистрация - Добавяме в initialization частта регистрация на евента BaseEventRegister.RegisterEvent(TXXXXXXX_DM, 'TMyNewEvent', sNameOfTheEvent);
  3. в В published добавяме евента като property: property OnMyEvent: TMyNewEvent read fOnMyEvent write fOnMyEvent;
  4. намираме процедурата за създаване procedure InitializeEvents; override; и го създаваме: fOnMyEvent := TMyNewEvent.Create(nil); Заб. Ако документа няма типове, то тук може да добавим всички свързани към него справки/скриптове описано в т. 7
  5. В procedure DataModuleDestroy(Sender: TObject); добавяме освобождаването - if Assigned(fOnMyEvent) then fOnMyEvent.Free;
  6. В private частта добавяме процедурата procedure DoOnMyEvent(Sender: TObject); - Процедурата изглежда приблизително така
    procedure TXXXXX_DM.DoOnMyEvent(Sender: TObject);
    begin
      .... тук е текста на самият евент
    end;
  7. Свързване на процедура в евент -
    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);
spravki_new/create_event.txt · Последна промяна: 2018/01/11 15:28 от 127.0.0.1