sucedía que la usaba de esta forma
- Code: Select all Expand view RUN
REDEFINE GET oFechaOfe VAR dFechaOfe ;
ID 101 OF oFolder:aDialogs[ 1 ] ;
BITMAP "BMS_CALEND" ;
ACTION ( dFechaOfe:=MsgDate( dFechaOfe, "Seleccione fecha de ingreso1" , oFechaOfe ) ) ;
PICTURE "@D"
pero cuando dFechaOfe estaba vacia, no se llegaba amostrar el calendario y se bloqueba la app.
revisando el fuente de dicha funcion me encontre esto:
- Code: Select all Expand view RUN
DEFAULT dDate := Date(), cPrompt := "Seleccione una fecha"
....
dDate -= Day( dDate ) - 1
while DoW( dDate ) != 2 // Monday
dDate --
enddo
le explico lo que encontré, al inicio de define dDate por defecto con el valor de la fecha actual
DEFAULT dDate = date()
ojo aca por defecto dDate tomara el valor de la fecha cuando el valor de dDate sea NIL, pero cuando dDate esta vació, dDate así se quedaba.
luego el ciclo while quedaba infinito dato que day retorna 0 para una fecha vacia.
se soluciona modificando la función así
- Code: Select all Expand view RUN
DEFAULT cPrompt := "Seleccione una fecha"
IF dDate==NIL .or. Empty(dDate)
dDate = Date()
ENDIF