zoukankan      html  css  js  c++  java
  • Creating, Stopping, Re-Starting and Deleting a Timer in Oracle Forms

    I have written many posts previously on Timers in Oracle Forms like how to change images randomly with timers and how to display a clock using timer, but in this post I am simply describing to how to create a timer, stop a timer, re-start a timer and deleting a timer.
     
    The following is the screen shot for this example showing a progress bar based on a display item:
     
     
    You can also download this form from the following link Timer.fmb
     
    Create a display item with the following properties:
     
    Name: Prgbar
    Width: 5
    Bevel: Plain
    Background Color: blue
     
    Write the following code for the "Create Timer" button:

    When-Button-Pressed trigger
    Declare
    v_timer timer;
    Begin
    -- find timer first if already exists.
    v_timer := find_timer('PrgBarTmr');
    if id_null(v_timer) then
    -- Creating timer for one second... one second = 1000 millisecond
    v_timer := Create_Timer('PrgBarTmr', 1000, Repeat);
    else
    message('already exists.');
    end if;

    -- will handle this timer in form level when-timer-expired trigger
    End;

    Write the following code for the "Stop Timer" buton:

    When-Button-Pressed trigger
    Declare
    v_timer timer;
    Begin
    -- find the timer first
    v_timer := find_timer('PrgBarTmr');
    if not id_null(v_timer) then
    -- this will stop the timer after one millisecond
    Set_Timer(v_timer, 1, No_Repeat);
    end if;
    -- will handle this timer in form level when-timer-expired trigger
    End;

    Write the following code for the "Re-Start Timer" buton:

    When-Button-Pressed trigger
    Declare
    v_timer timer;
    Begin
    -- find the timer first
    v_timer := find_timer('prgbartmr');
    if not id_null(v_timer) then
    -- this will re-start the timer after one second
    Set_Timer(v_timer, 1000, Repeat);
    else
    v_timer := create_timer('prgbartmr',1000, Repeat);
    end if;
    -- will handle this timer in form level when-timer-expired trigger
    End;

    Write the following code for the "Delete Timer" buton:

    When-Button-Pressed trigger
    Declare
    v_timer timer;
    Begin
    -- find the timer first
    v_timer := find_timer('PrgBarTmr');
    if not id_null(v_timer) then
    -- this will delete the timer
    Delete_Timer(v_timer);
    end if;
    End;

    Then finally write the code for When-Timer-Expired trigger at form level to handle the timer and to do specific task:

    When-Timer-Expired trigger
    Declare
    v_timer_name varchar2(30);
    v_width number;
    Begin
    -- get the timer name first.. to know which timer has expired.. if multiple timer are running
      v_timer_name := get_application_property(timer_name);
      -- check if the same timer with capital letters
      if v_timer_name = 'PRGBARTMR' then
        v_width := get_item_property('blKtmr.prgbar', width);
        if v_width < 100 then
           v_width := v_width + 5;
        else
           v_width := 0;
        end if;
        set_item_property('blktmr.prgbar', width, v_width);
    end if;

    -- will handle this timer in form level when-timer-expired trigger
    End;
  • 相关阅读:
    dhl:asp.net mvc下用jQuery通过AJAX 实现HTTP 请求加载远程数据
    MVC .Routing
    ASP获取当前页URL
    jQuery中的mouseenter和mouseleave事件
    dhl:使用Resharper后还原原来Visual Studio中智能感知
    JSON 数据格式
    转:点击弹出div圆角的遮罩层,可关闭可移动(文章源自:烈火网,原文:http://www.liehuo.net/a/201004/2415766.html)
    15 个一定要会的 Windows7 快捷键
    Asp.Net Mvc中的一些初级问题整理
    Javascript操作form中Field Radio Checkbox Select等的代码
  • 原文地址:https://www.cnblogs.com/quanweiru/p/6220070.html
Copyright © 2011-2022 走看看