FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Boton en BtnGet
Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Boton en BtnGet
Posted: Wed Jun 26, 2019 07:10 PM

Es posible desactivar el Boton de un Btnget ? y activarlo solo cuando el get le introduzcan datos ??

Gracias

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Boton en BtnGet
Posted: Wed Jun 26, 2019 07:38 PM
Intenta asi:


Code (fw): Select all Collapse
STATIC lCondicion := .F.

fFUNCTION MY FUNCTION()


    REDEFINE BTNGET aGet[2] VAR XDIA PICTURE "@K!" ID 21        ;
             OF oDlgFecha FONT oFont UPDATE  WHEN( lCondicion ) ;
             COLOR nRGB( 000, 000, 000 ), nRGB( 243, 250, 200 )


RETURN NIL

EN UN VALID... o ON CHANGE
FUNCTION CONDICION( aGet )

   IF CONDICION

      lCondicion := .T.

      aGet[2]:Enable()
      aGet[2]:Refresh()

   ELSE

      lCondicion := .F.

      aGet[2]:Disable()
      aGet[2]:Refresh()

   ENDIF

RETUN( .T. )


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Re: Boton en BtnGet
Posted: Thu Jul 04, 2019 03:45 PM

Gracias, una duda mas:
@ 1.35, 4 TBTNGET oGet2 VAR nTicket OF oDlg5 ;
SIZE 45, 12 RIGHT ;
RESOURCE "Prop" ;
PICTURE "9999999";
ACTION Cliente1(oLbx,oGet2,oGet3,oGet4);
VALID (Cliente2(@nTicket,oGet2,oGet3,oGet4,oDlg5),Libre) FONT fntArial

En ACTION Cliente1, abro un LIstbox donde el usuario selecciona un registro, al hacerlo pasa el valor al oGet2, pero tiene que darle un enter para salir del oGet2 y entrar al VALID, como hago para evitar ese enter ?, ya intente poner Libre:=.t. oGet2:LostFocus() pero no lo libera, alguna idea ?

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Boton en BtnGet
Posted: Thu Jul 04, 2019 03:55 PM
Hola, usas BTNBMP ó BUTTON en el dialogo en el botton de salida por ejemplo?

BUTTON, ponga: CANCEL

BTNBMP, ponga: oBtn:lCancel := .T.

Cual versión de five usas? Se és una nueva versión, no hay porque usar BTNGET.

Mira \samples\TESTGET3.PRG GET con ACTION nativo del fivewin, mui bueno.

use tambien:

Code (fw): Select all Collapse
   TBtnGet():lFocusClr := .T.



Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Re: Boton en BtnGet
Posted: Fri Jul 05, 2019 02:38 PM

Gracias por tu tiempo, aun no he podido hacer que se salga del Get después de seleccionar un dato en un listbox,
¿puedo "mandar" un ENTER desde linea de comando ?? para forzar la salida (tal vez no sea lo mas indicado)

gracias

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Boton en BtnGet
Posted: Fri Jul 05, 2019 02:57 PM

Muestra un ejemplo simple para testes, porfa. Saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Re: Boton en BtnGet
Posted: Fri Jul 05, 2019 08:10 PM

Gracias nuevamente, pongo un ejemplo de la situacion:

Function Menu()
local oDlg1, oLbx1, oGet2, oGet3

 SET 3DLOOK ON          // Microsoft 3D Look

 DEFINE DIALOG  oDlg5 FROM 13,15 TO 38,76 ;
        TITLE "Control de Tickets  " ;

 nTicket:=0
 Libre:=.t.
 @ 0.25, 19.5 TBTNGET oGet2 VAR nTicket OF oDlg1 ;
          SIZE 50, 12             ;
          RESOURCE "Prop"     ;
          PICTURE "9999999";
          ACTION Cliente1(oLbx,oGet2,oGet3);  //F2
          VALID (Cliente11(@nTicket,oGet2,oGet3,oDlg1),Libre)  FONT fntArial

@ 2.55, 4 GET oGet3 VAR nImporte SIZE 45, 11 OF oDlg1 PICTURE "999,999.99" COLOR CLR_BLUE FONT fntArial RIGHT


    ACTIVATE Dialog oDlg5

Return NIL

Function Cliente1(oLbx,oGet2,oGet3)
local oDlg5, oLbx1, oBtn51, oBtn52

 SET 3DLOOK ON          // Microsoft 3D Look

 DEFINE DIALOG  oDlg5 FROM 13,15 TO 38,76 ;
        TITLE "Control de Tickets Sesion: " + Alltrim(Str(xSesion)) ;

    oDlg5:lHelpIcon:=.F.

    SELECT 4
    USE C:\Ventas\Ventas19 Alias aSls SHARED
    Go Top

    TWBrowse():lHScroll:= .F.
    @ .2 , .2 LISTBOX oLbx1 FIELDS Transform(aSls->Ticket,"999999"), Transform(aSls->Importe,"99999.99") ;
            HEADERS   "Ticket      ","Importe";
            FIELDSIZES 80,80;
            SIZE 110, 65 OF oDlg5;
            ON DBLCLICK Captura(oLbx1,oDlg5,oGet2,oGet3) FONT fntArial2

    ACTIVATE Dialog oDlg5

Return NIL


Function Captura(oLbx1,oDlg5,oGet2,oGet3)
nTicket:=aSls->Ticket
nImporte:=aSls->Importe
oGet2:Refresh()
oGet3:Refresh()
oDlg5:End()

    ******AQUI NECESITO QUE AL CERRAR EL DIALOGO SE SALGA DEL oGet2, osea del BtnGet y el Foco Quede en oGet3

Return Nil

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Boton en BtnGet
Posted: Fri Jul 05, 2019 08:51 PM
Code (fw): Select all Collapse
   oGet3:SeFocus()
   oGet3:Refresh()
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 198
Joined: Fri Nov 18, 2005 07:34 PM
Re: Boton en BtnGet
Posted: Fri Jul 05, 2019 10:19 PM

Ya lo habia intentado pero no cambia al otro oGet :(

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Boton en BtnGet
Posted: Wed Jul 10, 2019 12:50 PM

Donde esta esta FUNCTION Cliente11() ??

Saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Boton en BtnGet
Posted: Wed Jul 10, 2019 02:13 PM
Code (fw): Select all Collapse
#include "FiveWin.ch"

FUNCTION MENU()

   LOCAL oDlg1, oLbx1, oGet2, oGet3

   SET 3DLOOK ON // Microsoft 3D Look

   DEFINE DIALOG oDlg5 FROM 13, 15 TO 38, 76 ;
      TITLE "Control de Tickets " ;

   nTicket := 0
   Libre := .T.

   @ 0.25, 19.5 TBTNGET oGet2 VAR nTicket OF oDlg1 ;
      SIZE 50, 12 ;
      RESOURCE "Prop" ;
      PICTURE "9999999";
      ACTION Cliente1( oLbx, oGet2, oGet3 ); //F2  // oDlg1 ????
      VALID ( Cliente11( @nTicket,oGet2,oGet3,oDlg1 ), Libre ) FONT fntArial

   @ 2.55, 4 GET oGet3 VAR nImporte SIZE 45, 11 OF oDlg1 PICTURE "999,999.99" COLOR CLR_BLUE FONT fntArial RIGHT

   // MUESTRE LOS BUTTONS porfa.


   ACTIVATE Dialog oDlg5

RETURN NIL

FUNCTION Cliente11( oLbx, oGet2, oGet3 )

   LOCAL oDlg5, oLbx1, oBtn51, oBtn52

   SET 3DLOOK ON // Microsoft 3D Look

   // CAMBIE AQUI.
   SELECT 4
   USE C:\Ventas\Ventas19 ALIAS aSls SHARED
   GO TOP

   DEFINE DIALOG oDlg5 FROM 13, 15 TO 38, 76 ;
      TITLE "Control de Tickets Sesion: " + Alltrim( Str( xSesion ) ) ;

      oDlg5:lHelpIcon := .F.

   @ .2 , .2 LISTBOX oLbx1 FIELDS Transform( aSls->Ticket, "999999" ), Transform( aSls->Importe, "99999.99" ) ;
      HEADERS "Ticket ", "Importe";
      FIELDSIZES 80, 80;
      SIZE 110, 65 OF oDlg5;
      ON DBLCLICK Captura( oLbx1, oDlg5, oGet2, oGet3 ) FONT fntArial2

   TWBrowse():lHScroll := .F.  // HERNAN??

   // MUESTRE LOS BUTTONS porfa.

   ACTIVATE Dialog oDlg5

RETURN NIL

//****************************************************************************************

FUNCTION Captura( oLbx1, oDlg5, oGet2, oGet3 )

   nTicket := aSls->Ticket
   nImporte := aSls->Importe
   oGet2:Refresh()

   oGet3:SetFocus()
   oGet3:Refresh()
   oDlg5:End()

//*****AQUI NECESITO QUE AL CERRAR EL DIALOGO SE SALGA DEL oGet2, osea del BtnGet y el Foco Quede en oGet3

RETURN Nil


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion