newDlgCancOp
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