Fijate si algo asi es la idea
Tenias razon, lo otro daba error
Code: Select all | Expand
#include "Fivewin.ch"
#include "xbrowse.ch"
static nSaldo, oSay
FUNCTION cmsoft()
LOCAL oDlg1, oBrwTmp, aCols, oCol, nFilas := 3, nColumnas := 3, i, j
nSaldo := 10000
MsgGet("Filas","Ingrese filas",@nFilas)
MsgGet("Columnas","Ingrese columnas",@nColumnas)
aCols := ARRAY(nFilas,nColumnas)
FOR i := 1 to nFilas
for j := 1 to nColumnas
aCols [i,j] := 0
next j
next i
DEFINE DIALOG oDlg1 TITLE "Edicion" SIZE 700,700 PIXEL TRUEPIXEL RESIZABLE
@ 20, 20 XBROWSE oBrwTmp SIZE -20,-20 pixel OF oDlg1 ;
CELL LINES NOBORDER
WITH OBJECT oBrwTmp
:SetArray(aCols)
AEval( :aCols, ;
{ |o| (o:bOnPreEdit := { | o, xVal, nKey | IIF(nSaldo <= 0,MsgStop("No hay más autobuses disponibles !","Atencion"),)}), ;
(o:bOnChange := { | o, uOldVal| VerSaldo(uOldVal) }),;
(o:bEditValid := { | oGet | Valida(oGet:VarGet())}),;
(o:nEditType := EDIT_GET) })
/*for each oCol in :aCols
oCol:bOnPreEdit := { | oCol, xVal, nKey | IIF(nSaldo <= 0,MsgStop("No hay más autobuses disponibles !","Atencion"),)}
oCol:bOnChange := { | oCol, uOldVal| VerSaldo(uOldVal) }
oCol:bEditValid := { | oGet | Valida(oGet:VarGet())}
oCol:nEditType := EDIT_GET
next oCol */
:CreateFromCode()
END
@ 0,0 Say "Saldo" GET oSay VAR nSaldo PIXEL OF oDlg1 READONLY
ACTIVATE DIALOG oDlg1 CENTERED
RETURN nil
static function VerSaldo(n)
nSaldo := nSaldo + n
oSay:Refresh()
return nil
static function valida(n)
IF (nSaldo - n) <= 0
MsgStop("El importe super el saldo")
RETURN .f.
ENDIF
nsaldo := nSaldo - n
oSay:Refresh()
return .t.