【问题标题】:How to manage disable/enable Minimize,Resize and Close button in oracle forms?如何在 oracle 表单中管理禁用/启用最小化、调整大小和关闭按钮?
【发布时间】:2018-12-09 18:54:16
【问题描述】:

我需要通过在 10g 中的 oracle mdi 父窗体中编程来管理禁用/启用最小化、调整大小和关闭按钮。请给我解决这个问题。 enter image description here

【问题讨论】:

  • 为什么要做这件事?您想如何/何时执行此操作?
  • 主要是我需要固定的 mdi 父窗口大小。不要调整窗口大小。
  • 如果我是你的用户,我当然不希望你限制这些选项。
  • 我同意@Littlefoot。用户基于他们使用其他应用程序的方式,对应用程序应该如何工作有一个期望。打破标准约定——比如能够最小化或最大化应用程序窗口——是糟糕的用户体验。如果您的应用程序没有按照用户期望的方式运行,他们将开始不信任它。您应该设法让用户喜欢您的应用程序,而不是想办法让他们讨厌它。
  • 我将确保用户的便利。用户设施取决于环境。我们正在制作 ERP 软件并为两个国家的 10 多家公司提供 ERP 软件。我们 ERP 的专业领域是提供服装解决方案。当打开子窗口时,会遇到一些问题,表单 MDI 父表单关闭问题。请观看此视频,然后您将了解我的问题。 [youtu.be/LNDzg-lyOt0] 感谢你们所有人 APC 和 @Littlefoot 所以,希望你们能给我解决方案。我在等你的回复。

标签: oracle oracle10g oracleforms


【解决方案1】:

您可能希望阻止用户调整应用程序的 MDI 窗口大小或关闭应用程序的 MDI 窗口的原因有很多。一个完美的例子是如果应用程序中的所有对象都是固定大小的。能够调整父窗口的大小只会暴露未使用的空间。尝试运行 Microsoft 计算器。请注意,您无法调整其窗口大小。阻止用户不调整大小当然并不少见。

所以到一个解决方案...

如果您使用的是 Forms 12.2.1+,这很容易。在 v12 中,Forms 提供了两个新参数; “isResizable”和“alwaysOnTop”。希望每个人的所作所为都很明显。简单设置为 TRUE 或 FALSE 即可。

对于 v11 及更高版本,它变得有点难看。我假设您使用的是单独的Frame=true。为了调整大小或关闭,您可以创建一个 Java Bean,但这可能会付出更多的努力而不值得。

在 PL/SQL 中,尝试关闭父窗口(separateFrame 窗口)的用户执行以下操作:

  1. 创建一个警报对象并将其命名为“PAUSE_EXIT”。警报应包括两个按钮(例如是/否)。

  2. 创建一个表单级别的 WHEN-WINDOW-CLOSED 触发器并添加:


do_key('EXIT');
  1. 创建一个表单级别的 KEY-EXIT 触发器并添加如下内容。您必须对其进行调整以在您的应用程序中做正确的事情。您需要考虑模块中的所有“窗口”。

DECLARE
    al_id Alert; 
    al_button NUMBER; 
BEGIN 
    IF :System.Event_Window = 'FORMS_MDI_WINDOW' THEN
        al_button := Show_Alert('PAUSE_EXIT'); 
    IF al_button = ALERT_BUTTON1 THEN 
        -- User selected YES, so exit.
        EXIT_FORM; 
    ELSE
        -- User selected NO, so don't exit.
        RAISE Form_Trigger_Failure; 
    END IF; 
ELSE
    -- User attempted to close a form window and not the MDI window 
    -- Remove NULL and do something else if not the MDI window
    NULL;
END IF;
END;

可以使用类似的方法来检测 MDI 窗口是否已最小化或调整大小。在 Builder 帮助中查找这些:SYSTEM.EVENT_WINDOW、GET_WINDOW_STATE、WHEN-WINDOW-RESIZE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-20
    • 2014-11-25
    • 2019-07-24
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多