%% Name=Demo
%% MENU_ID=MENU_DEMO
 {
 Menu %Name% Custom Handler.
 }
 procedure Menu%Name%CustomHandler(id:String);
 begin
  if EditStateDone then
  if not IsEmptyStr(id) then begin
   // Menu handler (before confirmation).
   if EditTestResultName(id) then begin
    if EditTestResultCode(mr_OK) then begin
     if (EditGetMenuListSelectedIndex>=0) then
     if LooksLikeCommand(EditGetMenuListSelectedCommand) then
     if IsEmptyStr(EditGetMenuListSelectedConfirm) then begin
      DevPostCmdLocal(EditGetMenuListSelectedCommand);
     end else begin
      EditStartConfirmCommand('Вы действительно хотите выполнить:'+EOL+
                              EOL+UpCaseStr(EditGetMenuListSelectedConfirm)+' ?'+
                              EOL+EOL+'Эта операция требует вашего подтверждения!',
                              id+'::Confirm',EditGetMenuListSelectedCommand,EditGetSettingText);
     end;
    end;
    if not EditStateBusy then EditReset;
   end;
   // Menu handler (after confirmation).
   if EditTestResultName(id+'::Confirm') then begin
    if EditTestResultCode(mr_YES) then begin
     if LooksLikeCommand(EditGetCommand(0))
     then DevPostCmdLocal(EditGetCommand(0));
    end;
    EditReset;
   end;
  end;
 end;
 {
 Menu %Name% Handler to handle editing.
 }
 procedure Menu%Name%Handler;
 begin
  Menu%Name%CustomHandler(EditGetUID('%MENU_ID%'));
  // or use 
  // EditMenuDefaultHandler(EditGetUID('%MENU_ID%'));
 end;
