• 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;
  • 相关阅读:
    JAVA学习日报 11/26
    JAVA学习日报 11/25
    大二寒假作业之JavaWeb
    大二寒假作业之JavaWeb
    大二寒假作业之JavaWeb
    大二寒假作业之《构建之法》读后感2
    大二寒假作业之Android
    大二寒假作业之《构建之法》读后感1
    大二寒假作业之android
    大二寒假作之Android
  • 原文地址:https://www.cnblogs.com/quanweiru/p/6220070.html
Copyright © 2020-2023  润新知