In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Deshabilitar uso de teclas

Foro de Xailer profesional en español
Responder
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Deshabilitar uso de teclas

Mensaje por Martin Del Angel »

Hola a Todos:
uso la clase TEdit
CLASS TEdit FROM XEdit
PUBLISHED:
PROPERTY lAutoSelect INIT asSELECTALL
PROPERTY nClrBorder INIT clRed EDITOR PE_Color
METHOD WMKeyDown( nKey, nFlags )
METHOD WMKillFocus( wParam, lParam ) INLINE Super:WMKillFocus(
wParam,lParam ), ::lInsert := .T., 0
PUBLIC:
METHOD WMNCPaint()
ENDCLASS
METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
IF nKey == VK_UP
::GoPrevControl()
ELSEIF nKey == VK_DOWN
::GoNextControl()
ELSE
RETURN Super:WMKeyDown( nKey, nFlags )
ENDIF
RETURN 0
//---------------------------------------------------------- ----------------
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
#include "colors.ch"
HB_FUNC_STATIC( TEDIT_WMNCPAINT )
{
PHB_ITEM Self = hb_stackSelfItem();
HWND hWnd = GetHandleOf( Self );
if( XA_ObjGetL( Self, "lFocused" ) )
{
HDC hdc = GetWindowDC( hWnd );
RECT rect;
HBRUSH hbr = CreateSolidBrush( (COLORREF) XA_ObjGetNL( Self,
"nClrBorder" ) );
GetWindowRect( hWnd, &rect );
rect.right -= rect.left;
rect.bottom -= rect.top;
rect.left = 0;
rect.top = 0;
FrameRect( hdc, &rect, hbr );
InflateRect( &rect, -1, -1 );
FrameRect( hdc, &rect, hbr );
DeleteObject( hbr );
}
else
PrevWindowProc( hWnd, WM_NCPAINT, hb_parnl( 1 ), 0 );
hb_retnl( 0 );
}
#pragma ENDDUMP
//---------------------------------------------------------- ----------------
Funciona perfecto el movimiento entre controles con las teclas Flecha
Arriba y Flecha Abajo.
Pero quiero desactivar este comportamiento cuando haga foco en un
Control TMemo. y que al salir de este se active nuevamente el uso de
teclas Arriba y Abajo para cambiarme entre controles
Si alguien me puede dar alguna sugerencia , gracias de antemano.
Saludos...
jlalin
Mensajes: 926
Registrado: Sab Dic 25, 2010 11:10 pm

Deshabilitar uso de teclas

Mensaje por jlalin »

Martin,
prueba así­:
> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
IF ::IsKindOf( "TMemo" )
RETURN Nil
ENDIF
...
Saludos,
José Lalí­n
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Deshabilitar uso de teclas

Mensaje por Martin Del Angel »

On 2/21/2012 3:30 AM, José Lalí­n wrote:
> Martin,
>
> prueba así­:
>
>> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
>
> IF ::IsKindOf( "TMemo" )
> RETURN Nil
> ENDIF
>
> ...
>
> Saludos,
> José Lalí­n
>
Gracias José:
Funciono Perfecto.
Saludos...
Martin Del Angel
Mensajes: 360
Registrado: Mié Dic 03, 2008 5:05 am

Deshabilitar uso de teclas

Mensaje por Martin Del Angel »

On 2/21/2012 9:51 AM, Martin Del Angel wrote:
> On 2/21/2012 3:30 AM, José Lalí­n wrote:
>> Martin,
>>
>> prueba así­:
>>
>>> METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
>>
>> IF ::IsKindOf( "TMemo" )
>> RETURN Nil
>> ENDIF
>>
>> ...
>>
>> Saludos,
>> José Lalí­n
>>
>
> Gracias José:
>
> Funciono Perfecto.
>
>
> Saludos...
Gracias José:
Funciono Perfecto
Saludos...
Responder