newDlgCancOp

newDlgCancOp([OpNum])

Crea e restituisce un nuovo oggetto DlgCancOp. Se 'OpNum' è nil viene mostrata una finestra con un cursore generico che permette solo di annullare l'operazione, altrimenti, se viene passato un numero, questo deve essere il numero totale di operazioni per le quale si vuole gestire la progressione. In tal caso utilizzare il metodo Step() per dire alla finestra di incrementare la percentuale ed aggiornare la barra di scorrimento.

Esempio 108. Esempio newDlgCancOp()

------------------------------------------------------------------------------
-- Esempio di utilizzo con step progressivi:
------------------------------------------------------------------------------
function TestStep()
    -- Utilizzo la barra indicante la percentuale di avanzamento.
    local numerooperazioni = 85
    local obj = newDlgCancOp(85)
   
    -- Apro una finestra che rimane sopra alle altre.
    local TopmostWindow = 1
    obj.Open(TopmostWindow)
   
    for i = 1, numerooperazioni do
        -- Incremento la percentuale.
        obj.Step()
        if not obj.isOpen() then
            alert("L'utente ha annullato l'operazione.")
            break
        end
        alert("Elaboro l'elemento ", i)
    end
   
    -- In tutti i casi chiudo la finestra
    -- e libero le risorse.
    obj.Close()
end
------------------------------------------------------------------------------
-- Esempio di utilizzo con numero di operazioni totale non conosciuto:
------------------------------------------------------------------------------
function TestGenerico()
    -- Utilizzo la barra che scorre indefinitamente:
    -- non conosco il numero di operazioni da eseguire.
    local obj = newDlgCancOp()
   
    -- Apro una finestra che passa dietro alle altre.
    local TopmostWindow = nil
    obj.Open(TopmostWindow)
   
    local i = 1
    while 1 do
        if not obj.isOpen() then
            alert("L'utente ha annullato l'operazione.")
            break
        end
        alert("Elaboro l'elemento ", i)
        -- Chiamo una funzione per sapere se ho finito il lavoro.
        -- HoFinito() non è definita in questo esempio.
        if HoFinito(i) then
            break
        end
        i = i + 1
    end
    for i = 1, DammiNumeroOp() do
        -- Incremento la percentuale.
        obj.Step()
    end
   
    -- In tutti i casi chiudo la finestra
    -- e libero le risorse.
    obj.Close()
end