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;
  • 相关阅读:
    A simple tutorial on SQL Server 2005 Beta 2 Service Broker
    WSSDAL (WSS Data Access Layer) – a SharePoint Web Services alternative
    SQL Server 2005 Beta 2 Service Broker: Create Route
    Enterprise Library: Security Quickstart代码解析篇, Part 1
    Microsoft SQL Server 2005 Beta2初步体验
    Microsoft patterns & practices Enterprise Library系列分析文章
    今天迎来了酷酷的“小黑”- T43
    Windows SharePoint Services Software Development Kit
    Images of Ireland Desktop Theme for Windows XP
    Enterprise Library v1.0 Tutorials
  • 原文地址:https://www.cnblogs.com/quanweiru/p/6220070.html
Copyright © 2011-2022 走看看