Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problema con stringGrid y foco AYUDA!!!

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema con stringGrid y foco AYUDA!!! Responder citando

Bueno, resulta que tengo una aplicacion donde para pasar de un objeto a otro, en este caso edits y un StrinGrid, uso el intro como si fuera el tabulador.
El problema viene cuando llego a el StringGrid y quiero pasar por cada una de sus celdas tambien con el intro hasta el final de StringGrid.
El caso es que no lo consigo y cuando llego al StringGrid ,a su primera celda, al pulsar intro me sale del StringGrid en vez de pasar a la siguiente celda.
Hago esto:

Código:

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
 if (Key == VK_RETURN)
   {
   Key=0;
   Perform(WM_NEXTDLGCTL,0,0);
   }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::StringGrid1KeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  if (Key == VK_RETURN )
   {
   Key=VK_TAB;
   }
}

Ademas me gustaria que hiciera esto pero que siempre que se seleccione una celda esté para editar, creo ke se hace con goAlwaysShowEditor en true;
He probado con Setfocus y focused(), pero nada.
El problema supongo que está en que sigue haciendo el FormKeyDown aunque esté en el StringGrid.
¿Habria alguna forma de hacer todo esto correctamente?
GRACIAS
Un Saludo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Pasar de un control a otro Responder citando

Amigo,
Nunca intente hacer lo que relatas en el problema, pero te quiero hacer llegar una consideracion que tal vez te ayude.

Cuando estas en un stringgrid, las teclas que usas para pasar de una celda a otra, son las flechitas, no el TAB.

Reitero, nunca hice lo que vos quieres hacer.
Espero que te sirva.

Luis Anibal Mendez
_________________
Luis Anibal Mendez
Analisis, Programacion, Asesoramiento
luisanibalmendez@gmail.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Flechitas Responder citando

Amigo,
Acabo de ver tu otro grito de AYUDA !!
En donde justamente tomas en cuenta lo que recien te relataba,
cambiar el VK_ENTER por VK_RIGHT en vez de VK_TAB.
_________________
Luis Anibal Mendez
Analisis, Programacion, Asesoramiento
luisanibalmendez@gmail.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

ya lo intente asi y no funciona. Solo me funciona en el StrinGrid, si quito este codigo del form :
Código:

void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
 if (Key == VK_RETURN)
   {
   Key=0;
   Perform(WM_NEXTDLGCTL,0,0);
   }
}
 


pero entonces no consigo el resultado deseado.

Lo que quiero es que con el intro pase de edit en edit en el form y despues pase al StrinGrid, y una vez dentro del StrinGrid haga lo mismo de celda en celda hasta el final de este.
Uso Key=VK_TAB en vez de VK_RIGHT porque asi al final de cada fila me pasa a la de abajo y con VK_RIGHT al final de cada fila se queda ahi.

Alguien me sacaria de la duda?
GRACIAS
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Ya lo he solucionado.Era más facil de lo que parecia.
Lo que he hecho es que en vez de poner

Código:

 if (Key == VK_RETURN)
   {
   Key=0;
   Perform(WM_NEXTDLGCTL,0,0);
   }


en el evento KeyDown del form como hacía, lo he puesto en el evento Keydown de cada uno de los Edits y ComboBoxs del form y

Código:

  if (Key == VK_RETURN )
   {
   Key=VK_TAB;
   }


en el evento KeyDown del stringGrid.

Bueno gracias por la atención.

un saludo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.