
  PROCEDURE [INLINE] fdp$find_change_form_definition
    (    form_identifier: fdt$form_identifier;
     VAR p_form_status: ^fdt$form_status;
     VAR status: ost$status);

    VAR
      fdv$screen_status: [XREF] fdt$screen_status;

    status.normal := TRUE;
    IF ((form_identifier > 0) AND (form_identifier <=
          UPPERBOUND (fdv$screen_status.p_forms_status^))) THEN
      p_form_status := ^fdv$screen_status.p_forms_status^ [form_identifier];
      IF p_form_status^.entry_used THEN
        IF p_form_status^.defined_dynamically THEN
          IF NOT p_form_status^.design_form AND
             p_form_status^.p_form_definition^.form_ended THEN
            osp$set_status_abnormal (fdc$format_display_identifier,
                  fde$cannot_change_form, p_form_status^.p_form_definition^.
                  form_name, status);
          IFEND;

        ELSE { The form was not dynamically created. }
          osp$set_status_abnormal (fdc$format_display_identifier,
                fde$cannot_change_form, p_form_status^.p_form_definition^.
                form_name, status);
        IFEND;

      ELSE { The form identifier is not assigned. }
        osp$set_status_abnormal (fdc$format_display_identifier,
              fde$invalid_form_identifier, '', status);
        osp$append_status_integer (osc$status_parameter_delimiter,
              $INTEGER (form_identifier), 10, FALSE, status);
      IFEND;

    ELSE { The form identifier is out of bounds. }
      osp$set_status_abnormal (fdc$format_display_identifier,
            fde$invalid_form_identifier, '', status);
      osp$append_status_integer (osc$status_parameter_delimiter,
            $INTEGER (form_identifier), 10, FALSE, status);
    IFEND;

  PROCEND fdp$find_change_form_definition;

?? PUSH (LISTEXT := ON) ??
*copyc fdt$form_identifier
*copyc fdt$screen_status
*copyc osp$append_status_parameter
*copyc osp$set_status_abnormal
*copyc ost$status
?? POP ??
