Boton en el get

Boton en el get

Postby Pedro » 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, :lol: (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: Select all  Expand view

*-------------------------------------------------------------------------------
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
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Boton en el get

Postby Lautaro » Mon Jul 20, 2009 2: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
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Boton en el get

Postby ADBLANCO » Mon Jul 20, 2009 4:12 pm

DEBERÍA USAR ON INIT , NO ON PAINT
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Re: Boton en el get

Postby Pedro » Mon Jul 20, 2009 4: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
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 58 guests