Hola a todos, pues para ser breve soy nuevo en el AMS y tengo algunas dudas y problemas a la hora de hacer mi poyecto; el cual se podria decir que es un TEU, pero online.. donde pondre botones de los programas y al dar click en ellos me descargue el archivo (por ahora son url de descargas directas de DRIVE) con todo y progess bar, label de MB descargados y MB restantes, etc y lo ejecute despues de la descarga.
Todo esto hecho dentro de una pagina y un boton.
Pues bien mi problema es que no logro poner un boton de "cancelar descarga" propiamente dicho. Lo mas cercano que puse fue un boton de Applicacion.Exit el cual cancela lo descargado e incluso borra el archivo, pero me deja inservible el boton del programa para una segunda descarga.
He visto en los foros de indigo que lo mas recomendable para el boton de cancelar descarga es crear un status.dlg con una funcion callback, mas no logro hacerlo andar juntos.
Por favor ayudadme. Y gracias de antemanos. Salu2!
PD: Disculpen si no me deje entender, adjunto el codigo que utilice para todo esto:
Esto puse en funciones globales
Esto es lo que puse en el boton que utilizo para descargar:
Disculpen el desorden en el codigo, pero recien empiezo en esto, cualquier ayuda sera bien recibida.
Todo esto hecho dentro de una pagina y un boton.
Pues bien mi problema es que no logro poner un boton de "cancelar descarga" propiamente dicho. Lo mas cercano que puse fue un boton de Applicacion.Exit el cual cancela lo descargado e incluso borra el archivo, pero me deja inservible el boton del programa para una segunda descarga.
He visto en los foros de indigo que lo mas recomendable para el boton de cancelar descarga es crear un status.dlg con una funcion callback, mas no logro hacerlo andar juntos.
Por favor ayudadme. Y gracias de antemanos. Salu2!
PD: Disculpen si no me deje entender, adjunto el codigo que utilice para todo esto:
Esto puse en funciones globales
PWXMC="http://utilidadalmaximo.blogspot.pe/"
-------------------------------//-------------------------------------
--Función para descargar
function Downloadfile(nDownloaded, nTotal, TransferRate, SecondLeft, SecondLeftFormat, Message)
--nDownloaded = Cuanto va descargando
--nTotal= Peso en total del archivo
--TransferRate= Velocidad de transferencia actual en KB/s
--SecondLeft= Segundos restantes
--SecondLeftFormat= Segundos restantes en formato MM:SS
--Message= Dejar en blanco: ""
--POR AHORA: No logro hacer andar a SecondLeft y SecondLeftFormat
-- Trasforma el tamaño del archivo a MB's
sDownloaded = String.GetFormattedSize(nDownloaded, FMTSIZE_AUTOMATIC, true);
sTotal = String.GetFormattedSize(nTotal, FMTSIZE_AUTOMATIC, true);
-- Transforma lo descargado en "%" y luego
prange= (nDownloaded /nTotal) * 100;
ProgressRange= Math.Ceil(prange);
-- Rango barra de Progreso
Progress.SetRange("Progress_Download_Status", 0, 100);
Progress.SetCurrentPos("Progress_Download_Status", ProgressRange);
-- Muestra el tamaño total de la descarga y lo que se ha descargado
Label.SetText("Label_Downloaded", sDownloaded);
Label.SetText("Label_Total", sTotal);
minusone=Label.SetText("Label_ProgressDownloaded", ProgressRange.."% Descargado");
if ProgressRange <0.5 then
Label.SetVisible("Label_ProgressDownloaded", false)
end
if ProgressRange >0.5 then
Label.SetVisible("Label_ProgressDownloaded", true)
end
end
-------------------------------//-------------------------------------
Esto es lo que puse en el boton que utilizo para descargar:
-------------------------------------------------------------
Paragraph.SetVisible("Paragraph2", true);
Paragraph.SetText("Paragraph2", "Este es el instalador online, para los que cuenten con una conexion a internet.");
Label.SetVisible("Label1", true);
Label.SetVisible("Label_Downloaded", true);
Label.SetVisible("Label_Total", true);
-------------------------------//-------------------------------------
--Datos del archivo
URL = "https://files.avast.com/iavs9x/avast_fr ... online.exe"
sName = "avast_free_antivirus_setup_online.exe";
-- Ruta o directorio del archivo con nombre del archivo y extensión
savefile = _TempFolder.."\\avast_free_antivirus_setup_online.exe";
-- Descarga del archivo
HTTP.DownloadSecure(URL, savefile, MODE_BINARY, 0, 443, nil, nil, Downloadfile)
Completed = Label.GetText("Label_ProgressDownloaded");
--Obtener los códigos de error que pueden haber sido devueltos por la acción de descarga.
error = Application.GetLastError();
-- Si hay error durante la descarga.
if (Completed ~= '100% Descargado') then
showerror = Dialog.Message("Instalador TODO EN UNO", "La descarga no se completo. Intente nuevamente.", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1)
Image.SetVisible("erroraldescargar", true);
File.Delete(savefile, false, true, true, nil);
Label.SetVisible("Label_ProgressDownloaded", false);
Label.SetVisible("Label_ProgressDownloaded2", true);
Label.SetText("Label_ProgressDownloaded2", "Archivo no descargado");
Progress.SetCurrentPos("Progress_Download_Status",0);
end
-- Si no hay error durante la descarga.
if (Completed == '100% Descargado') then
dcomplete=Image.SetVisible("descargacompleta", true);
Label.SetVisible("Label_ProgressDownloaded", false);
Label.SetVisible("Label_ProgressDownloaded2", true);
Label.SetText("Label_ProgressDownloaded2", "Archivo descargado, abriendo...");
open=File.Open(savefile, "", SW_SHOWNORMAL);
end
Disculpen el desorden en el codigo, pero recien empiezo en esto, cualquier ayuda sera bien recibida.