我需要通过以10g的oracle mdi父窗体进行编程来管理禁用/启用“最小化,调整大小和关闭”按钮。请给我解决这个问题的方法。 enter image description here
答案 0 :(得分:0)
您可能有很多原因想要阻止用户调整大小或关闭应用程序的MDI窗口。一个完美的例子是应用程序中的所有对象都具有固定大小。能够调整父窗口的大小只会暴露未使用的空间。尝试运行Microsoft计算器。请注意,您无法调整其窗口大小。防止用户调整大小的情况并不少见。
一个解决方案...
如果您使用的是Forms 12.2.1+,这将很容易。在v12中,Forms提供了两个新参数。 “ isResizable”和“ alwaysOnTop”。希望每个人在他们的工作中都是显而易见的。只需将其设置为TRUE或FALSE,然后完成即可。
对于v11及更高版本,它变得有点难看。我假设您使用的是splitFrame = true。要调整大小或关闭大小,您可以创建一个Java Bean,但这可能要花很多功夫。
在PL / SQL中,试图关闭父窗口(separateFrame窗口)的用户执行以下操作:
创建一个Alert对象并将其命名为“ PAUSE_EXIT”。警报应包含两个按钮(例如,是/否)。
创建一个窗体级WHEN-WINDOW-CLOSED触发器并添加以下内容:
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;
可以使用类似的方法来检测MDI窗口是否已最小化或调整了大小。在Builder帮助中查找以下内容:SYSTEM.EVENT_WINDOW,GET_WINDOW_STATE,WHEN-WINDOW-RESIZE