Se que no es lo que necesitas porque usas tdatabase, pero tal vez te de un hilo para seguir.
Code: Select all | Expand
#include "FiveWin.ch"
static oWnd
static lEnd := .f., nArea
//----------------------------------------------------------------------------//
function Main()
nArea := 0
DEFINE WINDOW oWnd TITLE "Dialogo NoWait"
@ 2, 2 BUTTON "&Start" SIZE 80, 20 ACTION StartTest()
@ 2, 20 BUTTON "&Info" SIZE 80, 20 ACTION MsgInfo(select())
@ 2, 40 BUTTON "&Close Area" SIZE 80, 20 ACTION dbclosearea(select()) // Esto es para que de error al querer volver a ese dialogo nowait
ACTIVATE WINDOW oWnd MAXIMIZED
return nil
//----------------------------------------------------------------------------//
function StartTest()
local oDlg
local oBrw , n
nArea ++
n := nArea
USE Customer ALIAS "customer"+ALLTRIM(STR(nArea)) SHARED NEW
INDEX ON Field->State TO State
SET ORDER TO "State"
DEFINE DIALOG oDlg TITLE "No Wait Customer"+ALLTRIM(STR(nArea)) FROM 10, 10 TO 23, 70 RESIZABLE
@ 01,01 XBROWSE oBrw OF oDlg ;
LINES STYLE FLAT NOBORDER ;
COLUMNS "State","City", "Last", "First" ;
HEADERS "State","City", "Last", "First" PIXEL SIZE 200,70
oBrw:nMarqueeStyle = MARQSTYLE_HIGHLROW
oBrw:CreateFromCode()
oBrw:bGotFocus := {|| dbselectarea(oBrw:cAlias)}
ACTIVATE DIALOG oDlg NOWAIT VALID(Cerrar(n))
SysRefresh()
return nil
STATIC FUNCTION Cerrar(n)
dbclosearea( "customer"+ALLTRIM(STR(nArea)))
RETURN .t.
//----------------------------------------------------------------------------//
Los xbrowse con dialogos nowait funcionan bien, pero si cerramos un area de un dialogo que esta activo, ahi obtenemos el error.
Intuyo que por ese lado viene el problema