FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Boton en el get
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Boton en el get
Posted: Mon Jul 20, 2009 12:53 PM
Hola amigos del foro

Tengo un problema con los gets que usan un bot贸n para buscar.
El problema es que cuando vuelve de la b煤squeda se queda en su casilla hasta que se de enter o flecha abajo. Bueno eso no es muy molesto, pero si el siguiente get tiene tambi茅n un bot贸n y lo pulsamos, :-) (aqui viene la risa) el solito vuelve al get anterior. Veamos, que no baje al siguiente get y haya que darle enter vale, pero que en el segundo get se suba, eso me mosquea, 驴a alguien le ha pasado? . Abajo os dejo el c贸digo de lectura de los gets pos si alguno ve algo que no he visto.
Code (fw): Select all Collapse
*-------------------------------------------------------------------------------
function CtrCliSer( nEvent, oDClSer, oDServi, oDClie )
*-------------------------------------------------------------------------------
local oDlg
Local oGet[4]
    
    ASIZE(aDatSer,CLIS->(Fcount()))
    AFILL(aDatSer,.t.)
    CLIS->(IniCampo(aDatSer))
    CLIS->(TabCampo(aDatSer,0))
    
    if nEvent == ID_ALT
       CLIS->(IniCampo(aDatSer))
    EndIf
    DEFINE DIALOG oDlg RESOURCE "DLGMCLSER" FONT oFont

      REDEFINE GET oGet[1] VAR aDatSer[1] ID 201  PICTURE "99999" ;
             BITMAP "BUSCAR1" ACTION (aDatSer[1]:= BusSCli(oDClie,oDlg),;
             oGet[1]:Refresh()  ) ; 
             Valid CliSerN(oDlg,nEvent);
             OF oDlg UPDATE
      REDEFINE GET oGet[2] VAR aDatSer[2] ID 202  PICTURE "9999" ;
             BITMAP "BUSCAR1" ACTION (aDatSer[2]:= BusSer(oDServi,oDlg),;
             oGet[2]:Refresh()) ;  
                 Valid SerCliN(oDlg,nEvent);
             OF oDlg UPDATE
      REDEFINE GET oGet[3] VAR aDatSer[3] ID 203  PICTURE "@K!" OF oDlg UPDATE
      REDEFINE GET oGet[4] VAR aDatSer[4] ID 204  PICTURE "99,999.99" OF oDlg UPDATE

      REDEFINE BUTTON ID 101 OF oDlg ;
               ACTION ALTASERVI(nEvent), oDlg:End()

      REDEFINE BUTTON ID 102 OF oDlg ;
               ACTION CLIS->(IniCampo(aDatSer)), oDlg:aControls[ 1 ]:SetFocus(), oDlg:UpDate()

      REDEFINE BUTTON ID 103 OF oDlg CANCEL ACTION oDlg:End()

    ACTIVATE DIALOG oDlg ON PAINT oDlg:aControls[ 1 ]:SetFocus() CENTERED

return( nil )

En las funciones BusSCli y BusSer hay dos listbox que retornan el c贸digo de un cliente o de un servicio que posteriormente se validan.

Espero vuestras noticias
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 337
Joined: Fri Oct 07, 2005 02:44 PM
Re: Boton en el get
Posted: Mon Jul 20, 2009 02:11 PM
Pedro,

Creo que aqui esta tu error :

ACTIVATE DIALOG oDlg ON PAINT oDlg:aControls[ 1 ]:SetFocus() CENTERED


Cada vez que se repinta tu dialogo le das el foco al primer get ( odlg:acontrols[1] ).

Atte.,

Lautaro Moreira
Osorno
Chile
Hola,

Soy un Contador que por necesidad aprendio a programar y se quedo programando.
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Re: Boton en el get
Posted: Mon Jul 20, 2009 04:12 PM

DEBER脥A USAR ON INIT , NO ON PAINT

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Boton en el get
Posted: Mon Jul 20, 2009 04:45 PM

Gracias a los dos, funcion贸, pero el poner ON INIT en vez de ON PAINT 驴es por los botones?, porque eso mismo tengo en otros di谩logos y no me hace el tema de irse al primer get. Si es por el tema de los botnes en el get, bueno pues lo tendr茅 en cuenta para la pr贸xima vez.

De nuevo gracias.

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO

Continue the discussion