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
- 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.