FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour como hago para no dejar que un checkbox tome un valor?
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
como hago para no dejar que un checkbox tome un valor?
Posted: Wed May 21, 2014 03:57 PM

Hola.

Necesito que el usuario al querer MARCAR un checkbox solo pueda hacerlo si antes se comprobo que los datos se hallan ingresado,
intent茅 asi pero la marca queda...

DEFINE DIALOG oDlg resource "DLGLOGUEO"

  REDEFINE checkbox oGets[3] VAR ::vGets[3] ID 102 OF oDlg


  oGets[3]:bchange:={ || iif(!Comprobado(), (::vGets[3]:=.F., oGets[3]:refresh()), msginfo("se comprob贸")) }

ACTIVATE DIALOG oDlg CENTERED

gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Re: como hago para no dejar que un checkbox tome un valor?
Posted: Wed May 21, 2014 04:29 PM
Hola,

Code (fw): Select all Collapse
DEFINE DIALOG oDlg resource "DLGLOGUEO"

REDEFINE checkbox oGets[3] VAR ::vGets[3] ID 102 OF oDlg WHEN Comprobado()

ACTIVATE DIALOG oDlg CENTERED


Y debes utilizar oDlg:aEvalWhen() donde cambias los valores de comprobaci贸n para actualizar lo estados de los when del formulario (dialog)

saludos

Marcelo
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: como hago para no dejar que un checkbox tome un valor?
Posted: Wed May 21, 2014 09:05 PM
Esto es lo que entendi:

Code (fw): Select all Collapse
 聽 oGets[3]:bWhen:= {|| ::habilitarCambio(oDlg)}
聽 聽ACTIVATE DIALOG oDlg CENTERED ON INIT (oGets[4]:disable())

聽 聽RETURN (lValue)

//------------------------------------------------------------------------------

METHOD habilitarCambio(oDlg) CLASS TLogueo
聽 聽IF (Empty(AllTrim(::vGets[1])) .or. Empty(AllTrim(::vGets[2])))
聽 聽 聽 MsgStop("No se ingreso usuario y/o contrase帽a.", ".:Atenci贸n:.")
聽 聽 聽 ::vGets[3]:= .F.
聽 聽 聽 oDlg:AEvalWhen()
聽 聽ENDIF
聽 聽RETURN (nil)


Si entendi bien, no me anda. ya que cuando comienza el programa solo me envia el carte "no se ingreso...." y no sale de ahi.

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: como hago para no dejar que un checkbox tome un valor?
Posted: Wed May 21, 2014 10:40 PM
Code (fw): Select all Collapse
  LOCAL oThis := // aca debes poner la variable que contiene al objeto TLogueo
...
  oGets[3]:bWhen:= {|| oThis:habilitarCambio(oDlg)}
...

METHOD habilitarCambio(oDlg) CLASS TLogueo
   IF (Empty(AllTrim(::vGets[1])) .or. Empty(AllTrim(::vGets[2])))
      MsgStop("No se ingreso usuario y/o contrase帽a.", ".:Atenci贸n:.")
      ::vGets[3]:= .F.
      oDlg:AEvalWhen()
   ENDIF
   RETURN (nil)

aunque es mas sencillo con una funcion en lugar de una clase
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 118
Joined: Fri Dec 20, 2013 10:39 AM
Re: como hago para no dejar que un checkbox tome un valor?
Posted: Wed May 28, 2014 08:27 AM

Hola. Podr铆as deshabilitar el check y que se habilite solo cuando todos los gets que te interesen est茅n con datos.

Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3

Continue the discussion