Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

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 22:06:26.
Responder Con Cita
  #3  
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 22:08:52. Razón: Por lento...
Responder Con Cita
  #4  
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
  #5  
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
  #6  
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
  #7  
Antiguo 02-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
  #8  
Antiguo 02-12-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
Cool

Cita:
Empezado por RedVenom Ver Mensaje
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.
Salu2 compa.... podrias usar esto para lo que quieres

en el evento OnEnter de cada uno de los edits pones este código

Código Delphi [-]
Edit1.Color := clYellow;

y en el evento OnExit este código...

Código Delphi [-]
  Edit1.Color := clWindow;

P.D. claro está que clYellow y clWindows son colores y lo puedes cambiar a tu gusto
__________________
Las cosas o son, o no son...
Responder Con Cita
  #9  
Antiguo 02-12-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por RedVenom Ver Mensaje
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.
Hola, deberías abrir otro hilo con esta pregunta, para saber que componnete tiene el foco podrías usar ActiveControl o la función Focused del control.

Has esta prueba en el evento OnEnter de uno de tus edit pon este codigo, ademas de asignar este mismo evento a los demas edit que tienes.

Código Delphi [-]
procedure TForm1.Edit1Enter(Sender: TObject);
begin
 showmessage(ActiveControl.Name);
end;
 
//En el caso de Focused deberías preguntar así
 if Edit2.Focused then
  showmessage('el edit2 tiene el foco');

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 20:41:22
Leer archivo txt letra por letra intercubo Varios 14 16-02-2008 22:22:28
Emisora de radio turminator Varios 5 15-04-2006 21:40:55
Pulsar una letra en un DBgrid y que vaya al campo que empiece por esa letra Nbull SQL 8 16-12-2004 18:58:01
La radio de los 50.... Nuria Humor 0 05-04-2004 18:54:06


La franja horaria es GMT +2. Ahora son las 06:59:21.


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