Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何管理oracle窗体中的禁用/启用最小化、调整大小和关闭按钮?_Oracle_Oracle10g_Oracleforms - Fatal编程技术网

如何管理oracle窗体中的禁用/启用最小化、调整大小和关闭按钮?

如何管理oracle窗体中的禁用/启用最小化、调整大小和关闭按钮?,oracle,oracle10g,oracleforms,Oracle,Oracle10g,Oracleforms,我需要通过在10g中的oracle mdi父窗体中编程来管理禁用/启用最小化、调整大小和关闭按钮。请给我这个问题的解决办法 您可能有很多原因想阻止用户调整或关闭应用程序的MDI窗口。一个完美的例子是,如果应用程序中的所有对象都是固定大小的。能够调整父窗口的大小只会暴露未使用的空间。尝试运行Microsoft Calculator。请注意,您无法调整其窗口的大小。阻止用户不调整大小当然并不少见 所以要解决这个问题 如果您使用的是Forms 12.2.1+,这将很容易。在v12中,表单提供了两个新参

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

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

所以要解决这个问题

如果您使用的是Forms 12.2.1+,这将很容易。在v12中,表单提供了两个新参数;“isResizable”和“alwaysOnTop”。希望每一个都是显而易见的。简单设置为TRUE或FALSE,然后完成操作

对于v11及以上版本,它变得有点难看。我假设您使用的是separateFrame=true。对于调整大小或关闭,您可以创建一个Javabean,但这可能需要付出更多的努力

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

  • 创建警报对象并将其命名为“暂停退出”。警报应包括两个按钮(例如是/否)

  • 创建窗体级别WHEN-WINDOW-CLOSED触发器并添加以下内容:


  • 创建一个表单级的KEY-EXIT触发器,并添加如下内容。你必须调整它,以便在你的应用程序中做正确的事情。您需要说明模块中的所有“窗口”



  • 可以使用类似的方法来检测MDI窗口是否已最小化或调整大小。在生成器帮助中查找以下内容:SYSTEM.EVENT\u WINDOW、GET\u WINDOW\u STATE、WHEN-WINDOW-RESIZE

    为什么要执行此操作?您希望如何/何时执行此操作?主要是我需要固定的mdi父窗口大小。不要让窗口太大。如果我是你的用户,我当然不希望你限制这些选项。我同意@Littlefoot。根据用户使用其他应用程序的方式,用户对应用程序的工作方式有一个期望。打破标准惯例——比如能够最小化或最大化应用程序窗口——是糟糕的用户体验。如果您的应用程序没有按照用户期望的方式运行,他们将开始不信任它。你应该设法让用户喜欢你的应用程序,而不是让他们讨厌你的应用程序。我将确保用户的便利。用户设施取决于环境。我们在两个国家的10多家集团公司生产ERP软件并提供ERP软件。我们ERP的专业领域是提供服装解决方案。当打开子窗口时,会遇到一些表单MDI父表单关闭问题。请看这个视频,然后你就会明白我的问题。[感谢各位APC和@Littlefoot,希望你们能给我解决方案。我在等待你们的回复。
    do_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;