Выполнить по событию

Готовые скрипты, модули расширений, динамические библиотеки и вспомогательные утилиты.
Аватара пользователя
Владимир
Администратор
Сообщения: 614
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Выполнить по событию

Сообщение Владимир » 17 сен 2019, 10:40

Действие формы. Обрабатывает указанное событие

Изображение

Параметры и опции:

Событие для обработки
  • Открытие записи для редактирования
Выполнить
  • Вычислить выражение (в текущей форме)

Код расширенияПоказать

Код: Выделить всё

{@module
author=Develop-Soft [ https://forum.develop-soft.ru ]
version=0.1
description=Форма
Действия:
1. Выполнить по событию

Изменения:
v 0.1 от 17.09.2019 - выход первой версии
- добавлена обработка события формы "При редактировании записи"
...
@}

{@action
Id=79C77B61-68E8-40F3-AEDF-2021F6E3AFBA
Target=form
OrigName=RunOnAfterEdit
Name=При редактировании записи
Group=Выполнить по событию
UI=
<ui>
<divider caption="Вычислить выражение"/>
<expr name="Expr">
</ui>
Description=Действие выполняет обработку события формы:
"При редактировании записи".
@}

var Old_OnAfterEdit:TNotifyEvent;

procedure Self_OnAfterEdit(Sender: TObject);
var  Fm:TdxForm;
begin
if Old_OnAfterEdit<>nil then Old_OnAfterEdit(Sender);
  try
  Fm := TdxForm(Sender);
  EvalExpr(Fm.Params['RunOnAfterEditExpr'],Fm);
  except
    debug('Выполнить по событию -> При редактировании записи'+#13#10+
  '-> Self_OnAfterEdit: '+ExceptionParam);
  end;
end;

procedure RunOnAfterEdit(Expr:string);
begin
 if Self.Params.ParamExists('RunOnAfterEdit') then
 begin
 MsgBox('Ошибка','Выполнить по событию -> При редактировании записи:'+#13#10+
  'Отключите дубликат действия');
  exit;
 end;
 Old_OnAfterEdit := Self.OnAfterEdit;
 Self.OnAfterEdit := @Self_OnAfterEdit;
 Self.Params['RunOnAfterEditExpr']:=Expr;
 Self.Params['RunOnAfterEdit']:=1;
end;

Скачать:
Выполнить по событию v0.1.epas
(1.68 КБ) 111 скачиваний

Демо



Поддержка проекта

Теги: