No responde a ALT + (Letra definida) (Fwh 11.12)

No responde a ALT + (Letra definida) (Fwh 11.12)

Postby Enrrique Vertiz » Tue Jan 10, 2012 6:06 am

Estimados, tengo otro problema con mi migracion de FWH 10.09 a FWH 11.12
En muchos de mis dialogos tengo los botones <Aceptar> y <Cancelar> ambos se definen en el dialogo con el &(ampersand) por delante, para que acepten la combinacion de teckas ALT + A para aceptar o ALT + C para cancelar, en Fwh 10.09 funciona correcto, pero ahora no me acepta la combinacion, si doy por ejemplo ALT + C, se ubica en el BOTON, pero no ejecuta ninguna accion, adjunto el codigo PRG y el RC tambien en codigo

Parte del PRG que llama al Dialogo

DEFINE DIALOG oDlg RESOURCE "cvingpas" TITLE iif(subs(oApp:cEngine,3,3)=="SQL",oApp:cSysName+" - Accounting Software - ","Contsys - Accounting Software - ")+RDDNAME()

REDEFINE GROUP oGrp ID 13 OF oDlg PROMPT iif(wfcoi=="I","Access to : '","Acceso a : '")+alltrim(oApp:cSqlBd2)+iif(wfcoi=="I","' in : '","' en : '")+alltrim(oApp:cSqlHs1)+iif(wfcoi=="I","', Engine : ","', Motor : ")+oApp:cEngine+" Via : "+oApp:cRdd TRANSPARENT

REDEFINE GET oUsua VAR cUsua ID 110 OF oDlg PICTURE "@!" VALID !empty(cUsua)

REDEFINE GET oPass VAR cPass ID 120 OF oDlg PICTURE "@!"

Redefine Sensitive Say oSSay1 ID 810 Prompt cAce COLOR RGB(0,0,255) COLOROVER RGB(128,128,255) OF oDlg Action Gci_Acercade(oWndPrin)

REDEFINE BUTTON ID 998 OF oDlg ACTION (lSig:=.t.,oDlg:End())
REDEFINE BUTTON ID 999 OF oDlg ACTION (lSig:=.f.,oDlg:End()) CANCEL

ACTIVATE DIALOG oDlg CENTERED

Parte de RES (convertido a RC) que describe el Dialogo

CVINGPAS DIALOG 101, 36, 298, 79
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif"
{
EDITTEXT 110, 92, 18, 187, 12
EDITTEXT 120, 92, 35, 187, 12, ES_PASSWORD | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "&Aceptar", 998, 180, 61, 50, 15
PUSHBUTTON "&Cancelar", 999, 239, 61, 50, 15
GROUPBOX "&Acceso", 13, 12, 2, 277, 55, BS_GROUPBOX
ICON "keys32", -1, 18, 12, 18, 20
RTEXT "&Usuario", -1, 42, 20, 44, 8
RTEXT "&Contraseña", -1, 42, 37, 44, 8
CONTROL "&info@consorcioinformatico.com", 810, "TsSay", 0 | WS_CHILD | WS_VISIBLE | WS_GROUP, 18, 63, 77, 8
}
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby karinha » Tue Jan 10, 2012 5:53 pm

// Intenta ahora...
Code: Select all  Expand view

CVINGPAS DIALOG 237, 72, 298, 79
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif"
{
 EDITTEXT 110, 92, 18, 187, 12
 EDITTEXT 120, 92, 35, 187, 12, ES_PASSWORD | WS_BORDER | WS_TABSTOP
 DEFPUSHBUTTON "&Aceptar", 998, 180, 61, 50, 15
 PUSHBUTTON "&Salida", 999, 239, 61, 50, 15
 RTEXT "&Usuario", -1, 42, 20, 44, 8
 RTEXT "&Contraseña", -1, 42, 37, 44, 8
 ICON "keys32", -1, 18, 12, 18, 20
 CONTROL "&info@consorcioinformatico.com", 810, "TsSay", 0 | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 63, 170, 8
 GROUPBOX "&Acceso", 13, 12, 2, 277, 55, BS_GROUPBOX
}
CVINGPAS DIALOG 101, 36, 298, 79
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif"
{
EDITTEXT 110, 92, 18, 187, 12
EDITTEXT 120, 92, 35, 187, 12, ES_PASSWORD | WS_BORDER | WS_TABSTOP
DEFPUSHBUTTON "&Aceptar", 998, 180, 61, 50, 15
PUSHBUTTON "&Cancelar", 999, 239, 61, 50, 15
GROUPBOX "&Acceso", 13, 12, 2, 277, 55, BS_GROUPBOX
ICON "keys32", -1, 18, 12, 18, 20
RTEXT "&Usuario", -1, 42, 20, 44, 8
RTEXT "&Contraseña", -1, 42, 37, 44, 8
CONTROL "&info@consorcioinformatico.com", 810, "TsSay", 0 | WS_CHILD | WS_VISIBLE | WS_GROUP, 18, 63, 77, 8
}
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7826
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby Enrrique Vertiz » Thu Jan 12, 2012 4:09 pm

Karinha, gracias por contestar, pero tengo el mismo problema en un Dialogo creado desde codigo, abajo el ejemplo

DEFINE DIALOG oDlg FROM 0,0 TO 25,70 TITLE "Elija opcion de Importacion"

@ 1,1 LISTBOX oLbx ;
FIELDS &tipimp->cdo_import, &tipimp->cla_import, &tipimp->nom_archiv, &tipimp->nom_import ;
HEADERS "Codigo","Tipo","Archivo","Descripcion" ;
COLSIZES 40, 40, 100, 70 OF oDlg SIZE 260, 140 ;
ON DBLCLICK ( lLbx := .t., oDlg:End() )

@ 9.4, 10 BUTTON "&OK" OF oDlg SIZE 40,12 ACTION ( lLbx := .t., oDlg:End() )
@ 9.4, 28 BUTTON "&Cancel" OF oDlg SIZE 40,12 ACTION ( lLbx := .f., oDlg:End() )

ACTIVATE DIALOG oDlg CENTERED


Y al dar ALT + O o ALT + C no ejecuta ninguna accion, pero con el Enter o Click si, y en versiones anteriores de Fwh (10.09) funcionaba correctamente ????
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby Antonio Linares » Thu Jan 12, 2012 4:12 pm

Enrique,

Estamos revisándolo. Es un bug que se ha colado en la versión 11.12 y a ver si lo cazamos cuanto antes, gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby Enrrique Vertiz » Thu Jan 12, 2012 4:24 pm

Ok Antonio, esperamos, gracias !!!
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby Antonio Linares » Thu Jan 12, 2012 10:02 pm

Enrique,

Solucionado:

viewtopic.php?p=124928#p124928

Gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby carlos vargas » Mon Jan 16, 2012 6:30 pm

Antonio, esta modificacion

Code: Select all  Expand view

METHOD GetDlgCode( nLastKey ) INLINE ::oWnd:nLastKey := nLastKey, nil // DLGC_WANTALLKEYS
 


genera un afecto secundario:
que si el boton esta en un dialogo contenido en un folder, el salto de foco al siguiente control falla, y pasa al siguiente control pero del dialogo contenedor del folder.
Image

Uploaded with ImageShack.us

he cambiado a:

Code: Select all  Expand view

...
METHOD GetDlgCode( nLastKey )
..
METHOD GetDlgCode( nLastKey ) CLASS TButton

   ::oWnd:nLastKey := nLastKey

   IF ::oWnd:oWnd != NIL .and. ::oWnd:oWnd:ClassName() $ "TFOLDER,TFOLDEREX"
       RETURN DLGC_WANTALLKEYS
   ENDIF

RETURN NIL
 


y de momento esta funcionando en ambas situaciones, pero no se si esto tambien genera efectos indeseables.

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby Antonio Linares » Mon Jan 16, 2012 6:42 pm

Carlos,

Muy bien, gracias! :-)

Solo le he hecho este pequeño cambio:

Code: Select all  Expand view
METHOD GetDlgCode( nLastKey ) CLASS TButton

   ::oWnd:nLastKey := nLastKey

   if ::oWnd:oWnd != nil .and. ( ::oWnd:oWnd:IsKindOf( "TFOLDER" ) .or. ;
                                 ::oWnd:oWnd:IsKindOf( "TFOLDEREX" ) )
       return DLGC_WANTALLKEYS
   endif

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby carlos vargas » Mon Jan 16, 2012 7:02 pm

Antonio, ya que estamos en esto, me pudes explicar que hace este metodo y
que efecto tiene los valores de retorno
NIL y DLGC_WANTALLKEYS, ademas que efecto tiene

::oWnd:nLastKey := nLastKey

Si no es mucha molestia. :-)

salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby Antonio Linares » Wed Jan 18, 2012 6:09 pm

Carlos,

El método GetDlgCode() es donde se procesa y se responde al mensaje de Windows WM_GETDLGCODE:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms645425(v=vs.85).aspx

devolver nil en FiveWin es solicitar la acción por defecto del API de Windows. Devolver DLGC_WANTALLKEYS significa que queremos todo el input del teclado y que el control será el responsable de hacer lo que sea. Esas dos posibilidades asi como más que hay estan explicadas ahi.

Ese mensaje envía como parámetro el valor de la tecla virtual que va a ser procesada y FiveWin la almacena en el DATA nLastKey por si la necesitamos
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby carlos vargas » Wed Jan 18, 2012 7:57 pm

mil gracias antonio, esta explicacion me ha servido mucho el dia de hoy,
tenia un problema con un dialogo no modal que me sirve como menu en mi app.
este dialogo es contenido por una venta normal, el caso es que si estando la venta abierta y mostrando el dialogo, y el usuario presionaba la tecla escape, el dialogo que muestra el menu en un grupo de botones se cerraba, dejando la ventana solamente.
:-0, dejando al usuario sin ninguna opcion a seleccionar.

me asegure que la funcion setdialogoesc estubiera seteada correctamente, pero aun en estas condiciones el dialogo se cerraba,
ni aun modificando bKeyChar, bKeyDown tanto en la ventana como en el dialogo me servian para interceptar la pulsacion de la tecla escape y modificar la accion de cerrar el dialogo. aun dejando el estas lineas de codigo, conseguia que el dialogo no se cerrara.

ACTIVATE DIALOG oDlgMenu CENTER NOWAIT VALID !GetKeyState( VK_ESCAPE )
o
ACTIVATE DIALOG oDlgMenu CENTER NOWAIT VALID FALSE

pero en una de esas cambie los button por btnbmp y ya el dialogo no se cerraba, mi problema estaba en la clase tbutton.

solucion, encontre que la clase button el metodo getdlgcode que recientemente se modifico, necesita otra modificacion esta vez mas personal.
Code: Select all  Expand view

METHOD GetDlgCode( nLastKey ) CLASS TButton

   ::oWnd:nLastKey := nLastKey

   DO CASE
   CASE ::oWnd:oWnd != NIL .and. ( ::oWnd:oWnd:IsKindOf( "TFOLDER"   ) .or. ::oWnd:oWnd:IsKindOf( "TFOLDEREX" )      )
      RETURN DLGC_WANTALLKEYS
   CASE nLastKey == VK_ESCAPE .and. ::oWnd:oWnd != NIL .and. ( ::oWnd:oWnd:IsKindOf( "TWINDOW"   ) .and. ::oWnd:IsKindOf( "TDIALOG" ) )
      RETURN DLGC_WANTALLKEYS
   ENDCASE

RETURN NIL

 


/*no permite cerra dialogos con tecla ESCAPE*/
SetDialogEsc( FALSE )


Image

Uploaded with ImageShack.us

Code: Select all  Expand view

   DEFINE WINDOW oMainWnd   ;
      FROM 1, 1 TO 600, 800 ;
      TITLE StrFormat( "Sistema de control de Prestamos. - versión 1.0a, [%1]" , oSesion:InfoConexion );
      BRUSH oBrush          ;
      ICON  GetIcon()

      oMainWnd:SetFont( oFont )

      /*define barra de estado con información*/
      DEFINE MSGBAR oMsgBar OF oMainWnd PROMPT "KDSoft(c), Managua, Diciembre 2011" 2010 FONT oFont

      /*muestra datos de la sesion en la barra de estado*/
      DEFINE MSGITEM OF oMsgBar PROMPT oSesion:GetUsuarioAlias() SIZE 080 COLOR CLR_RED , NIL ACTION Usuarios_CambiarClave()
      DEFINE MSGITEM OF oMsgBar PROMPT oSesion:GetUsuarioTipo()  SIZE 100 COLOR CLR_BLUE, NIL
      DEFINE MSGITEM OF oMsgBar PROMPT oSesion:GetUsuarioCiud()  SIZE 150 COLOR CLR_BLUE, NIL

      /*muestra dialogo con menu principal*/
      oMainWnd:bInit := {|| MostrarMenu()  }

   /*activa ventana principal*/
   ACTIVATE WINDOW oMainWnd MAXIMIZED VALID MsgNoYes( "Desea salir de la aplicación?", "Seleccione" )


 

Code: Select all  Expand view

PROCEDURE MostrarMenu()
   LOCAL oDlgMenu, oFntMenu
   LOCAL oTitle, oFntTitle
   LOCAL oBotones[ 8 ]

   DEFINE FONT oFntTitle NAME "tahoma" SIZE 0, -26 BOLD
   DEFINE FONT oFntMenu  NAME "tahoma" SIZE 0, -12

   DEFINE DIALOG oDlgMenu NAME "DLG_MENU" OF oMainWnd COLOR CLR_BLUE, CLR_WHITE FONT oFntMenu BRUSH oBrush3

   /*crea objeto mytitle con logo de la empresa y su nombre:-)*/
   WITH OBJECT ( oTitle := TMyTitle():Redefine( 601, oDlgMenu ) )
      :lGlass    := TRUE
      :lVertical := FALSE
      :nClrText  := CLR_WHITE
      :nClrBegin := CLR_CYAN
      :SetFont( oFntTitle )
      :SetBitmap( "BM_CREDICOM" )
      :SetTitle( "CREDICOM & CIA. LTDA." )
   END

   /*muestra bitmap*/
   REDEFINE BITMAP ID 501 OF oDlgMenu NAME "BM_MENU"

   /*muestra informacion del programa*/
   SayDlg( oDlgMenu, 2, CLR_RED )

   /*botones para ejecutar modulos del programa*/
   REDEFINE BUTTON oBotones[ 1 ] ID 101 OF oDlgMenu PROMPT "Catalogo de clientes"                ACTION Clientes()
   REDEFINE BUTTON oBotones[ 2 ] ID 102 OF oDlgMenu PROMPT "Detalle de prestamo"                 ACTION Prestamos()
   REDEFINE BUTTON oBotones[ 3 ] ID 103 OF oDlgMenu PROMPT "Solicitud de prestamos"              ACTION SolicitudP()
   REDEFINE BUTTON oBotones[ 4 ] ID 104 OF oDlgMenu PROMPT "Programación de prestamos"           ACTION ProgramacionP()
   REDEFINE BUTTON oBotones[ 5 ] ID 105 OF oDlgMenu PROMPT "Registro de pagos por ruta de cobro" ACTION PagosXRuta()
   REDEFINE BUTTON oBotones[ 6 ] ID 106 OF oDlgMenu PROMPT "Reportes Financieros"                ACTION dummy()
   REDEFINE BUTTON oBotones[ 7 ] ID 107 OF oDlgMenu PROMPT "Operaciones en caja"                 ACTION MostrarMenu_ModulosCaja( oBotones[ 7 ] )
   REDEFINE BUTTON oBotones[ 8 ] ID 108 OF oDlgMenu PROMPT "&Tablas de soporte y utilidades"     ACTION MostrarMenu_TablasSoporte( oBotones[ 8 ] )

   REDEFINE BUTTON ID 201 OF oDlgMenu ACTION AcercaDe()
   REDEFINE BUTTON ID 202 OF oDlgMenu ACTION oMainWnd:END()

   ACTIVATE DIALOG oDlgMenu CENTER NOWAIT VALID !GetKeyState( VK_ESCAPE )

   oFntMenu:END()

   /*al dar foco a la aplicacion, se da foco al dialogo con las opciones del menu - fix_child_dialog*/
   oMainWnd:bGotFocus := {|| oDlgMenu:SetFocus() }

RETURN
 

dejo aca la incidencia para posteridad.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: No responde a ALT + (Letra definida) (Fwh 11.12)

Postby Antonio Linares » Wed Jan 18, 2012 11:25 pm

Carlos,

Buen trabajo! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42099
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 37 guests