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-02-2006
fefe13 fefe13 is offline
Miembro
 
Registrado: nov 2005
Posts: 15
Poder: 0
fefe13 Va por buen camino
Unhappy Saber si una tecla esta pulsada?

Como puedo saber si una tecla esta pulsada?Mi objetivo es que cuando se pulse la tecla una variable se vuelva a false.Creia que era if ... in shift then,pero por lo visto.Si alguien puede ayudarme.Graciasss
Responder Con Cita
  #2  
Antiguo 01-02-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Deberías explicar mejor en qué momento quieres detectar eso. Puede ser diferente dependiendo de en qué momento quieras detectarlo.
¿En un evento? ¿En un form? ¿Al realizar una acción? ¿en un componente?

Si añades el código que has probado será más fácil ayudarte.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 01-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por fefe13
Creia que era if ... in shift then,
Creiste que era esto ¿dónde?

Cita:
Empezado por fefe13
pero por lo visto.Si alguien puede ayudarme.Graciasss
Por lo visto ¿qué? ¿Es necesario ser tan telegráfico?

// Saludos
Responder Con Cita
  #4  
Antiguo 01-02-2006
Palmiro Palmiro is offline
Miembro
 
Registrado: oct 2005
Ubicación: Argentina - Chaco
Posts: 57
Poder: 19
Palmiro Va por buen camino
hola he leido tu pregunta... he aqui te paso algunos procedimiento, puede que te siervan como ami....
-------------------------------------------------------------------
Código Delphi [-]
procedure TForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_NUMLOCK then
    case (GetKeyState(VK_NUMLOCK) + 127) of
      0: ShowMessage('Activo'); // Permite usar el teclado numérico
      -1: ShowMessage('Inactivo'); // Sólo funciona las teclas cursoras
    end;
end; 
 
if GetKeyState(VK_CAPITAL) = 1 then
  bEstado.Panels[8].Text := rsBloqMayus
else
  bEstado.Panels[8].Text := '';
  
if GetKeyState(VK_NUMLOCK) = 1 then
  bEstado.Panels[9].Text := rsBloqNum
else
  bEstado.Panels[9].Text := '';

if GetKeyState(VK_SCROLL) = 1 then
  bEstado.Panels[10].Text := rsScrolLock
else
  bEstado.Panels[10].Text := '';
  
procedure TMain.KeyState();
begin
  If GetKeyState(VK_NUMLOCK) = 1 Then
    StatusBar.Panels[2].Style:= psText
  else
    StatusBar.Panels[2].Style:= psOwnerDraw;

  If GetKeyState(VK_CAPITAL) = 1 Then
    StatusBar.Panels[3].Style:= psText
  else
    StatusBar.Panels[3].Style:= psOwnerDraw;

  If GetKeyState(VK_SCROLL) = 1 Then
    StatusBar.Panels[4].Style:= psText
  else
    StatusBar.Panels[4].Style:= psOwnerDraw;
end;
 
procedure TMain.KeyPressed(Key: DWORD);
begin
  If Key = VK_NUMLOCK then
    if (GetKeyState(VK_NUMLOCK) + 127) = 0 Then
      StatusBar.Panels[2].Style:= psText
    else
      StatusBar.Panels[2].Style:= psOwnerDraw;
      
  If Key = VK_CAPITAL then
    if (GetKeyState(VK_CAPITAL) + 127) = 0 Then
      StatusBar.Panels[3].Style:= psText
    else
      StatusBar.Panels[3].Style:= psOwnerDraw;
      
  If Key = VK_SCROLL then
    if (GetKeyState(VK_SCROLL) + 127) = 0 Then
      StatusBar.Panels[4].Style:= psText
    else
      StatusBar.Panels[4].Style:= psOwnerDraw;
end;
__________________
No es lo mejor, pero es lo que hay...

Última edición por jmariano fecha: 01-02-2006 a las 20:33:01. Razón: Uso de las etiquetas [delphi] y formateo del código
Responder Con Cita
  #5  
Antiguo 02-02-2006
Sinonimo Sinonimo is offline
Registrado
 
Registrado: feb 2006
Posts: 5
Poder: 0
Sinonimo Va por buen camino
Cita:
Empezado por Neftali
Deberías explicar mejor en qué momento quieres detectar eso. Puede ser diferente dependiendo de en qué momento quieras detectarlo.
¿En un evento? ¿En un form? ¿Al realizar una acción? ¿en un componente?

Si añades el código que has probado será más fácil ayudarte.
Coincido plenamente. Es necesario que seas más específico para así poder ayudarte. Entiendo que tal vez quieras detectarlo dentro de un editbox, si verificas las propiedades de estos elementos, te darás cuenta que tienen al menos 3 procedimientos para manejar los eventos de teclas presionadas.
Espero encontrar mayor información para dar una respuesta más acertada.
Responder Con Cita
  #6  
Antiguo 02-02-2006
Avatar de Jonnathan
Jonnathan Jonnathan is offline
Miembro
 
Registrado: may 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 64
Poder: 19
Jonnathan Va por buen camino
Buen dia fefe.
Cita:
Empezado por fefe13
Creia que era if ... in shift then,pero por lo visto...
if ... in shift? en el evento onKeyPress? algo asi como tratar de saber si estan presionadas las teclas Alt, Ctrl o Mayuscula?
Te va a sonar como disco rayado pero debes poner mas datos acerca de tu problema o lo que quieres hacer. Si le dedicas un poquito de tiempo a explicarnos bien, le dedicaremos tiempo a tu pregunta.

Estamos dispuestos a ayudar pero necesitamos toda la informacion posible.
__________________
"En el siglo de la estupidez todas las casas comienzan por la fachada" (Fuckowsky)
Planeta Insólito, La Pluma Inspirada
Responder Con Cita
  #7  
Antiguo 02-02-2006
fefe13 fefe13 is offline
Miembro
 
Registrado: nov 2005
Posts: 15
Poder: 0
fefe13 Va por buen camino
El procedure de palmiro me ha ayudado bastante pero no se q es bEstado,sera una variable me imagino,pero no se el tipo?Alguien sabe algo'?Gracias
Responder Con Cita
  #8  
Antiguo 02-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Por favor! Ya somos cuatro personas que te indicamos que seas más específico. ¿En qué forma te ha servido lo que escribió Palmiro?

// Saludos
Responder Con Cita
  #9  
Antiguo 02-02-2006
fefe13 fefe13 is offline
Miembro
 
Registrado: nov 2005
Posts: 15
Poder: 0
fefe13 Va por buen camino
Cool

Intentare ser mas especifico:aora estoy utilizando el procedimiento tshiftstate.Parece que puede tener valores como ssshift o ssalt,que significa si que una de esas teclas esta pulsada.Lo unico que no consigo es ver como funciona exactamente.Pero me da un error de "incompatible types".Espero haber sido concreto esta vez.
Intente esto;
procedure tform1.tshiftstate(key:tshiftstate);
begin
if key:=ssshift then form1.close;
end;
Responder Con Cita
  #10  
Antiguo 02-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿El procedimiento TShiftState? ¿De dónde has sacado tal cosa?

// Saludos
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
Puedo saber si esta Conectada? (InterBase) marceloalegre Conexión con bases de datos 2 17-08-2005 21:35:12
¿Cómo saber si esta pulsado un componente en Delphi con una pantalla táctil? Ayoze Varios 3 26-05-2004 19:21:52
Saber si un Tabla(dataset) esta siendo usado por otro componente cacuna OOP 3 26-05-2004 18:21:43
Saber índice de la línea en la que está el cursor en un Memo fortran OOP 2 06-08-2003 17:12:10
¿Como saber cuabdo un componente esta invisible en tiempo de ejecuciòn? danytorres Varios 1 20-05-2003 15:51:21


La franja horaria es GMT +2. Ahora son las 09:38:23.


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