Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-12-2008
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
Question asignar letra a radio button

Espero me puedan ayudar con esta duda tengo un grupo de 4 radio buttons cuno asignado con la letra a, otro con la , otro con la c y otro con la d entonces lo que quiero que en lugar de hacer click con el mouse me gustaria que cuando presionaran las teclas A,B,C o D seleccionara el radio boton correspondiente y pasara el foco al siguiente grupo de radio buttons.
Espero me puedan orientar.
Responder Con Cita
  #2  
Antiguo 01-12-2008
Avatar de DarkMan
DarkMan DarkMan is offline
Miembro
 
Registrado: jul 2006
Posts: 102
Poder: 18
DarkMan Va por buen camino
Fácil, una solución es utilizar la propiedad "KeyPreview" del Form. Lo que hace esta propiedad es captar las pulsaciones de teclas de cualquier componente de tu formulario. Solo tendrías que añadir un código como éste en el evento "OnKeyDown" del formulario:
Código Delphi [-]
 
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = ord('A') then
  begin
    RadioButton1.SetFocus; 
  end;
 
  if key = ord('B') then
  begin
    RadioButton2.SetFocus;
  end;
 
  if key = ord('C') then
  begin
    RadioButton3.SetFocus;
  end;
 
  if key = ord('D') then
  begin
    RadioButton4.SetFocus;
  end;
end;

Cuando un radiobutton recibe el foco, automáticamente se cambia su propiedad checked.
__________________
"La recompensa de una buena acción está en haberla hecho"

Última edición por DarkMan fecha: 01-12-2008 a las 21:06:26.
Responder Con Cita
  #3  
Antiguo 01-12-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Otra solución pudiera ser nombrar incluir en el "Caption" de los "radio botones" el símbolo "&" (ampersand) justo antes de la letra en cuestión. Acabo de probarlo en un "Radio Group" y funciona como se espera. Claro que no sé si dependerá de alguna configuración en el sistema operativo, quiero decir, para que antes sea preciso pulsar la tecla "ALT" o no hacerlo. En mi caso no ha sido necesario.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 01-12-2008
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
Agradezco su orientacion, pero quiero pedir una disculpa ya que lo que estoy utilizando es DBRadioGroup dentro de este grupo hay 4 radiobuttons cada uno asignado a las letras de la A a la D entonces lo que quiero es poder presionar las teclas A,B,C o D para seleccionar uno de los radiobuttons del grupo y despues pasar el foco al siguiente DBRadioGroup.
mil disculpas por no utilizar los nombres adecuados.
Responder Con Cita
  #5  
Antiguo 01-12-2008
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por RedVenom Ver Mensaje
Agradezco su orientacion, pero quiero pedir una disculpa ya que lo que estoy utilizando es DBRadioGroup dentro de este grupo hay 4 radiobuttons cada uno asignado a las letras de la A a la D entonces lo que quiero es poder presionar las teclas A,B,C o D para seleccionar uno de los radiobuttons del grupo y despues pasar el foco al siguiente DBRadioGroup.
mil disculpas por no utilizar los nombres adecuados.
pues no cambia mucho :

Código Delphi [-]
IF Key=65 THEN DBRadioGroup1.ItemIndex:=0; /// radio a
IF Key=66 THEN  DBRadioGroup1.ItemIndex:=1; // radio b
IF Key=67 THEN DBRadioGroup1.ItemIndex:=2 /// radio c

utiliza ItemIndex.

saludos.
__________________
all your base are belong to us
Responder Con Cita
  #6  
Antiguo 01-12-2008
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
Muchas gracias por su ayuda, ya lo pude implementar.
Solo una pregunta mas como puedo saber en que componente esta posicionado el foco. Por ejemplo si tengo 4 edit como saber en cual de los 4 esta el foco.
Responder Con Cita
  #7  
Antiguo 01-12-2008
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por RedVenom Ver Mensaje
Espero me puedan ayudar con esta duda tengo un grupo de 4 radio buttons cuno asignado con la letra a, otro con la , otro con la c y otro con la d entonces lo que quiero que en lugar de hacer click con el mouse me gustaria que cuando presionaran las teclas A,B,C o D seleccionara el radio boton correspondiente y pasara el foco al siguiente grupo de radio buttons.
Espero me puedan orientar.
Código Delphi [-]
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
IF Key=65 THEN RadioButton1.SetFocus; /// radio a
IF Key=66 THEN  RadioButton2.SetFocus; /// radio b
IF Key=67 THEN  RadioButton3.SetFocus /// radio c

end;
activas la propiedad keyPreview del form, y luego en el evento onKeydown pones lo anterior....

edito:
ups.
se me adelantaron .... jeje
__________________
all your base are belong to us

Última edición por look fecha: 01-12-2008 a las 21:08:52. Razón: Por lento...
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
Transmitir radio por internet ledesma78 Internet 3 26-05-2008 19:41:22
Leer archivo txt letra por letra intercubo Varios 14 16-02-2008 21:22:28
Emisora de radio turminator Varios 5 15-04-2006 20:40:55
Pulsar una letra en un DBgrid y que vaya al campo que empiece por esa letra Nbull SQL 8 16-12-2004 17:58:01
La radio de los 50.... Nuria Humor 0 05-04-2004 17:54:06


La franja horaria es GMT +2. Ahora son las 22:40:47.


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