Page 1 of 1

Para Antonio Linares

Posted: Fri Mar 23, 2007 12:53 pm
by lorenzo
Estimado Antonio:

para limpiar el buffer del teclado tenemos en FWH algo parecido a "Clear Typeahead" de Clipper??
estuve buscando en \Samples\ pero no vi nada al respecto y en el foro nadie responde.

Mil gracias, maestro.
LORENZO

Posted: Sat Mar 24, 2007 12:13 am
by Antonio Linares
Lorenzo,

Actualmente no proporcionamos dicha función, pero es fácil de construir, ya que su funcionamiento sería parecido a SysRefresh() pero para eliminar los mensajes de teclado pendientes

Vamos a construir un prototipo y lo publicaremos cuanto antes

Re: Para Antonio Linares

Posted: Tue Aug 31, 2010 1:13 pm
by gdeteran
Hay alguna novedad respecto del mandato CLEAR TYPEAHEAD.
Necesito vaciar la memoria intermedia del teclado y no sé como hacerlo.

Re: Para Antonio Linares

Posted: Tue Aug 31, 2010 1:37 pm
by Daniel Garcia-Gil
gdeteran wrote:Hay alguna novedad respecto del mandato CLEAR TYPEAHEAD.
Necesito vaciar la memoria intermedia del teclado y no sé como hacerlo.
intenta usar hb_keyclear() de harbour

Re: Para Antonio Linares

Posted: Tue Aug 31, 2010 2:00 pm
by Antonio Linares
La función sería algo asi:

Code: Select all

#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

BOOL IsModelessDialog( MSG * pMsg );
BOOL bWRunning( void );
HWND GetWndApp( void );
LPACCEL _SetAcceleratorTable( LPACCEL hNewAccelTable );

BOOL ClearKeyboard( void )
{
   LPACCEL hAccel = _SetAcceleratorTable( NULL );
   MSG msg;

   msg.message = 1;

   while( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) && msg.message != WM_QUIT )
   {
      if( ! IsModelessDialog( &msg ) &&
          !( hAccel && GetWndApp() &&
             TranslateAccelerator( ( HWND ) GetWndApp(), ( HACCEL ) hAccel, ( LPMSG ) &msg ) ) )
      {
         if( msg.message != WM_CHAR )
         {
            TranslateMessage( &msg );
            DispatchMessage( &msg );
         }
      }
   }

   if( bWRunning() && ( msg.message == WM_QUIT ) )
      PostQuitMessage( 0 );

   _SetAcceleratorTable( hAccel );

   return ( msg.message != WM_QUIT );

HB_FUNC( CLEARKEYBOARD )
{
   hb_retl( ClearKeyboard() );
}

#pragma ENDDUMP
 

Re: Para Antonio Linares

Posted: Wed Sep 01, 2010 12:37 pm
by gdeteran
Gracias Antonio y Daniel, probaré....

Re: Para Antonio Linares

Posted: Mon Feb 27, 2012 10:09 pm
by Francisco Horta
que tal Antonio,

Tengo la necesidad de esta funcion..
la agregue a mi .prg al final y la mando llamar ClearKeyboard(),, pero me envia estos errores al compilar...

Declaration not allowed here in function ClearKeyboard
Declaration syntax error in function ClearKeyboard
Declaration missing in function ClearKeyboard
Compound statement missing } in function ClearKeyboard

uso xmate y xharbour
gracias
paco

Re: Para Antonio Linares

Posted: Mon Feb 27, 2012 10:26 pm
by Antonio Linares
Paco,

Por favor copia aqui el reporte de error completo del compilador de C, gracias

Re: Para Antonio Linares

Posted: Mon Feb 27, 2012 10:45 pm
by Francisco Horta
Antonio,

pase los include, hasta el principio de mi .prg
#include <hbapi.h>
#include <windows.h>
y ahora envia estos errores...

Code: Select all

[1]:Harbour.Exe Source\TAuditoria.prg  /m /n0 /gc0 /es2 /ip:\32bits\xHarbour_TEST\INCLUDE;P:\32BITS\FWH_TEST\INCLUDE;INCLUDE;P:\32bits\Borland\bcc582\Include /ip:\32bits\XHABFE~1\Include /dHB_API_MACROS /dHB_FM_STATISTICS_OFF /dHB_STACK_MACROS /ip:\32bits\XHABFE~1\Contrib\What32\Include /oObj\TAuditoria.c
xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6717)
Copyright 1999-2010, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'Source\TAuditoria.prg'...
_stddef.h(38) Error E0030  Syntax error: "syntax error at 'INT'"
_stddef.h(56) Error E0025  Error in #if expression
_stddef.h(63) Error E0030  Syntax error: "syntax error at 'UNSIGNED'"
_stddef.h(82) Error E0030  Syntax error: "syntax error at 'INT'"
_stddef.h(91) Error E0030  Syntax error: "syntax error at 'UNSIGNED'"
_stddef.h(101) Error E0030  Syntax error: "syntax error at 'WCHAR_T'"
_stddef.h(110) Error E0030  Syntax error: "syntax error at 'WCHAR_T'"
_stddef.h(117) Error E0030  Syntax error: "syntax error at 'LONG'"
hbapi.h(570) Error E0025  Error in #if expression
9 errors

No code generated
 
gracias
paco

Re: Para Antonio Linares

Posted: Sat May 31, 2014 9:54 am
by colthop
Hola paco:

Me gustaría saber si pudiste solucionar los errores y si limpiaba el buffer de teclado. Y si es así como.

Un saludo

Carlos