Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-09-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Intenta de este modo:

.h
Código PHP:
...

class 
TForm1 : public TForm
{
__published:    // IDE-managed Components
  
TEdit *Edit1;
  
TEdit *Edit2;
  
TEdit *Edit3;
  
TEdit *edCenso;
  
void __fastcall edCensoExit(TObject *Sender);
private:    
// User declarations
  
void __fastcall CMDialogKey(TWMKeymsg);
  
BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER
(CM_DIALOGKEYTWMKeyCMDialogKey)
  
END_MESSAGE_MAP(TForm)
public:        
// User declarations
  
__fastcall TForm1(TComponentOwner);
};

... 
.cpp
Código PHP:
...

bool Valida true

void __fastcall TForm1::edCensoExit(TObject *Sender)
{
  if (
Valida)
    
ShowMessage("SE VALIDA");
  else
    
ShowMessage("NO SE VALIDA");
}


void __fastcall TForm1::CMDialogKey(TWMKeymsg)
{
  
Valida = !(msg.CharCode == VK_TAB && GetKeyState(VK_SHIFT) < 0);
  
TForm::Dispatch(&msg);

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-09-2020 a las 16:40:39.
Responder Con Cita
  #2  
Antiguo 30-09-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Intenta de este modo:
Saludos
Gracias por la ayuda. Funciona pero al entrar en OnExit me da un error Stack Overflow, y es que sigue yendo a validar las teclas pulsadas.
Responder Con Cita
  #3  
Antiguo 30-09-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Tal vez haya algún evento mas en juego en tu código. En mi prueba, que realiza la validación en el evento OnExit, no dá error en absoluto.

Te adjunto la prueba para que cotejes, espero que te sirva.

Saludos
Archivos Adjuntos
Tipo de Archivo: zip Matilla.zip (455,7 KB, 3 visitas)
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-09-2020 a las 22:19:36.
Responder Con Cita
  #4  
Antiguo 30-09-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

También puedes limitar la comprobación a los edits:
Código PHP:
void __fastcall TForm1::CMDialogKey(TWMKeymsg)
{
  if (
ActiveControl->ClassNameIs("TEdit"))
    
Valida = !(msg.CharCode == VK_TAB && GetKeyState(VK_SHIFT) < 0);
  
TForm::Dispatch(&msg);

O sólo al edit en cuestión:
Código PHP:
void __fastcall TForm1::CMDialogKey(TWMKeymsg)
{
  if (
ActiveControl->Name == "edCenso" )
    
Valida = !(msg.CharCode == VK_TAB && GetKeyState(VK_SHIFT) < 0);
  
TForm::Dispatch(&msg);

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 01-10-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias ecfisa. El ejemplo que me has mandado funciona perfectamente. Tengo que ver que estoy haciendo mal para que a mi no me funcione.
Responder Con Cita
  #6  
Antiguo 01-10-2020
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Ya encontré que estaba haciendo mal. Estaba definiendo mal esa variable Valida y por eso no hacía bien el proceso. Gracias a todos.
Responder Con Cita
  #7  
Antiguo 01-10-2020
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.235
Poder: 20
ElKurgan Va camino a la fama
Thumbs up

Gracias a ti, por compartir la solución

Un saludo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Efecto button pulsado mizzard C++ Builder 4 08-01-2012 23:23:33
saber que tecla se presiona despues de X tecla amadis OOP 9 04-01-2008 13:16:35
como se si he pulsado un boton ercrizeporta Varios 11 03-04-2007 13:56:56
Cambiar la tecla TAB por la tecla ENTER al pasar de controles dec Trucos 0 30-06-2006 13:43:03
he pulsado el botón enviar?? valentine API de Windows 7 02-06-2004 17:21:54


La franja horaria es GMT +2. Ahora son las 02:21:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi