【问题标题】:how to center my window in oracle forms 10g如何使我的窗口在 oracle forms 10g 中居中
【发布时间】:2018-07-12 03:37:47
【问题描述】:

如何在 oracle forms 10g 中使我的窗口居中?

这是我的代码不起作用:

set_window_property(forms_mdi_window, window_state, maximize);

set_window_property('window1',x_pos,(get_window_property(forms_mdi_window,width)-get_window_property('window1',width))/2);

set_window_property('window1',y_pos,(get_window_property(forms_mdi_window,height)-get_window_property('window1',height))/2);

你有什么想法,为什么?谢谢。

【问题讨论】:

  • 对于 Forms10+ 版本,这是一个很好的问题,谢谢。

标签: oracleforms


【解决方案1】:

不要将它设置为最大化开始,那么你就不能再改变尺寸了。然后我使用这个代码:

declare
     mdiwidth number;
     mdiheight number;
     winid window;
     v_window VARCHAR2(50) := get_view_property(get_item_property( name_in( 'SYSTEM.CURSOR_ITEM' ), ITEM_CANVAS), WINDOW_NAME );
 begin
    winid := find_window(v_window);
    mdiwidth := get_window_property(FORMS_MDI_WINDOW, width);
    mdiheight := get_window_property(FORMS_MDI_WINDOW, height);
    set_window_property(winid, position, 
                        greatest(mdiwidth/2 - get_window_property(winid, width)/2 - 2, 0),
                        greatest(mdiheight/2 - get_window_property(winid, height)/2 - 40, 0));
end;

高度40的调整是针对任务栏的。

【讨论】:

  • 很好的解决方案,我从昨天开始就在尝试为这个问题找到这样的解决方案,恭喜nigthfox。
  • 我找到了解决方案,触发器是when_windows_activated
【解决方案2】:
set_window_property(forms_mdi_window, window_state, maximize);

set_window_property('PURCHASE',x_pos,(get_window_property(forms_mdi_window,width)-get_window_property('PURCHASE',width)-10)/2);
set_window_property('PURCHASE',y_pos,(get_window_property(forms_mdi_window,height)-get_window_property('PURCHASE',height))/2);

【讨论】:

  • 欢迎来到 StackOverflow。虽然这段代码可以解决问题,including an explanation 解决问题的方式和原因确实有助于提高帖子的质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请edit您的答案添加解释并说明适用的限制和假设。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多