Pantalla de carga personalizada msgrun - Resuelto

Pantalla de carga personalizada msgrun - Resuelto

Postby nlerdafehn » Tue May 23, 2023 6:11 pm

Buenas tardes foro,

Tengo el siguiente codigo, que lo copie de la fuente de msgrun y lo personalize. Le pongo el logo del producto, le saco el titulo y pongo una leyenda. Hasta ahi todo excelente. El problema radica en que no se como hacer para que se active una función que ejecute la acción y a su vez, muestre mi pantalla de carga. Si hago como esta en msgrun con oDlg:bStart, la pantalla queda en blanco, ya he intentado varias cosas, e inclusive multi-thread pero no logro que se cumpla el objetivo. Si a la función de callback le hago un msginfo o algun cartel, ahi SI aparece la pantalla de carga, sino, queda en blanco hasta que termine de ejecutarse.

Code: Select all  Expand view  RUN
function Loading(cCaption, bAction, oWndParent)
  LOCAL oDlg, nWidth, uReturn := .f., obrush
 
  DEFAULT bAction  := { || WaitSeconds( 1 ) },;
    cCaption := "Aguarde unos instantes..."

  SET RESOURCES TO 'BARRAS.DLL'

  DEFINE FONT oFuentbt  NAME "Segoe UI Semibold"   SIZE 0, -15
 
  DEFINE DIALOG oDlg RESOURCE "dl_loader"
  Define brush obrush COLOR nRGB(255,255,255)
   
  REDEFINE XIMAGE oImg  ID 4001 RESOURCE '#7777' OF oDlg ADJUST    
  REDEFINE SAY ID 4002 PROMPT cCaption OF oDlg  font oFuentbt TRANSPARENT CENTER
  oDlg:SetBrush( oBrush )      
 
  ACTIVATE DIALOG oDlg ON INIT (oDlg:Center( oWndParent )) on PAINT loadingDoIt(bAction, oDlg, uReturn)  
 
    return uReturn

    function loadingDoIt(bAction, oDlg, uReturn)
  uReturn := Eval( bAction, oDlg )
  oDlg:End()
  SysRefresh()
 
return .t.
 
Last edited by nlerdafehn on Tue May 23, 2023 11:47 pm, edited 1 time in total.
Nicolás
nlerdafehn
 
Posts: 50
Joined: Tue Feb 02, 2021 10:21 pm
Location: Buenos Aires, Argentina

Re: Pantalla de carga personalizada msgrun - Esperar carga

Postby nlerdafehn » Tue May 23, 2023 11:47 pm

Bueno, gracias a chatGPT hice que funcione con un timer y va GENIAL.

Comparto la respuesta para el que le interese para hacer un msgrun personalizado con su logo. Donde se pasa el mensaje, la función a ejecutar mientras se muestra el mensaje de carga, y la ventana padre para que se centre.

Code: Select all  Expand view  RUN
FUNCTION Loading(cCaption, bAction, oWndParent)
   LOCAL oDlg, nWidth, obrush
 
   DEFAULT bAction  := { || WaitSeconds( 1 ) },;
     cCaption := "Aguarde unos instantes..."
   
   DEFINE FONT oFuentbt  NAME "Segoe UI Semibold"   SIZE 0, -15
 
   DEFINE DIALOG oDlg RESOURCE "dl_loader"
   Define brush obrush COLOR nRGB(255,255,255)
     
   REDEFINE XIMAGE oImg  ID 4001 RESOURCE '#7777' OF oDlg ADJUST    
   REDEFINE SAY ID 4002 PROMPT cCaption OF oDlg  font oFuentbt TRANSPARENT CENTER
   oDlg:SetBrush( oBrush )      
 
   ACTIVATE DIALOG oDlg ON INIT oDlg:Center( oWndParent ) on paint timer(bAction, oDlg)
   RETURN uReturn
 
   function timer(bAction, oDlg, uReturn)
 Define Timer oTimer  INTERVAL 1000 Action loadingDoIt(bAction, oDlg, uReturn)
 ACTIVATE TIMER oTimer
   return .t.
 
   FUNCTION loadingDoIt(bAction, oDlg)
   otimer:end()
 uReturn := .f.
 uReturn := Eval( bAction, oDlg )
   oDlg:End()
   SysRefresh()  
   RETURN .T.
Nicolás
nlerdafehn
 
Posts: 50
Joined: Tue Feb 02, 2021 10:21 pm
Location: Buenos Aires, Argentina

Re: Pantalla de carga personalizada msgrun - Resuelto

Postby karinha » Wed May 24, 2023 12:39 pm

Nicolás, ¿Puede hacer que el RESOURCE '#7777' y RESOURCE "dl_loader" esté disponible? Sería muy amable de tu parte y ayudaría mucho.

Gracias.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Pantalla de carga personalizada msgrun - Resuelto

Postby albeiroval » Wed May 24, 2023 1:27 pm

Nicolas, En vez de usar una imagen se podria usar una progress bar, o un Gif ?
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
albeiroval
 
Posts: 379
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: Pantalla de carga personalizada msgrun - Resuelto

Postby nlerdafehn » Sat May 27, 2023 1:46 am

No sabria como subirlo aqui la .dll pero es super basico. Cree un nuevo dialogo, puse meramente un image y un text. Nada mas. Y despues lo redefini. El #7777 es el logo del producto.

Si, el GIF podrias usarlo citandolo directamente desde un archivo en la carpeta del sistema, con FILENAME. El progressbar deberias darle la funcionabilidad e ir pasando los parametros en las funciones de ejecuccion para que vayan actualizando el progress bar.

Yo utilizo bastante msgmeter que funciona muy bien, pero podrias personalizarlo tambien. Deberias echarle un ojo al source
Nicolás
nlerdafehn
 
Posts: 50
Joined: Tue Feb 02, 2021 10:21 pm
Location: Buenos Aires, Argentina

Re: Pantalla de carga personalizada msgrun - Resuelto

Postby karinha » Sat May 27, 2023 1:42 pm

Nicolás, Utilice la nube de archivos. Cree un .RAR o .ZIP y publique el ENLACE(link) para la descarga.

https://mega.nz/

Gracias, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 73 guests