Ver Mensaje Individual
  #3  
Antiguo 19-09-2023
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.757
Reputación: 21
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
A nivel práctico, lo que comenta Neftalí sería:

Código Delphi [-]
OnCreate()
   // Un label en donde irás mostrando el progreso de proceso
   // Invisible por defecto
   LabelProgeso.Visible := False;


procedure ProcesaXML();
var
  Registro : integer;
begin
  // Visibilizo e inicializo el Label que muestra el progreso.
  LabelProgreso.Visible := True;
  LabelProgreso.Caption := '';
  Registro := 1;

  // Todo entre try..except para evitar que quede el label visible si algo falla
  try
    while XML_tenga_datos do
    begin
      // Muestro la información para que el usuario no se ponga nervioso
      LabelProgreso.Caption := 'Procesando Registro Nro. ' + IntToStr(Registro);
      // Fuerzo a que se procesen los eventos de mouse, teclado y refresco de pantalla
      Application.ProcessMessages;

      // Procesar Registro XML
      ...

      Next_Dato_XML;
      Inc(Registro);
    end;
  finally
    // Inivisibilizo Label ya que ha terminado el proceso
    LabelProgreso.Visible := False;
  end;
end;


Yo suelo poner un panel con labels, memos para logs y barras de progreso que hago visible tapando o invisibilizando los otros paneles de la aplicación.

Última edición por Neftali [Germán.Estévez] fecha: 19-09-2023 a las 14:32:18.
Responder Con Cita