ON DELETE block
The ON DELETE trigger can be used to enable row deletion during a
DISPLAY ARRAY dialog. If this block is defined, the dialog will automatically
create the delete action. This action can be decorated, enabled and disabled as regular actions.
The action created for the ON DELETE modification trigger is implicitley marked
as a ROWBOUND action.
If the dialog defines an ON ACTION delete interaction block and the
ON DELETE block is used, the compiler will stop with error -8408.
When the user fires the delete action, the dialog executes the user code of the
ON DELETE block.
arr_curr():DISPLAY ARRAY arr TO sr.*
  ...
  ON DELETE
    IF fgl_winQuestion("Delete",
          "Do you want to delete this record?",
          "yes", "no|yes", "help", 0) == "no"
    THEN
       LET int_flag = TRUE
    END IF
    ...After the user code is executed, the dialog gets the control back and processes the current row as follows:
- If the 
int_flagglobal variable isFALSEandstatusis zero, the current row is deleted from the program array, and theBEFORE ROWblock is executed for the next row in the list. - If the 
int_flagglobal variable isTRUEorstatusis different from zero, the current row is kept in the program array, and theBEFORE ROWblock is executed again for the current row. 
The DISPLAY ARRAY dialog always resets int_flag
 to FALSE and status to zero before executing
 the user code of the ON DELETE block.
ON DELETE handler can be configured with action attributes by
adding an ATTRIBUTES() clause, as with user-defined action
handlers:  ON DELETE ATTRIBUTES(TEXT=%"custlist.delete", IMAGE="listdel")