Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-04-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
scancode to char

saludos a todos

existe alguna funcion que convierta el scancode de una tecla a su equivalente ASCII o al menos que determine si la tecla pulsada es un caracter??

de antemano gracias
__________________
self.free;
Responder Con Cita
  #2  
Antiguo 08-04-2007
d-hugo d-hugo is offline
Miembro
 
Registrado: abr 2007
Posts: 34
Poder: 0
d-hugo Va por buen camino
una forma de hacerlo

Una forma un poco burda de detectar si la tecla es un caracter puede lograrse usando el evento onKeyPress con un case. Algo más o menos así:
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case ord(key) of
    65..90: begin
      // entre A y Z mayúscula
    end;
    97..122: begin
      // entre a y z minúscula
    end;
    else begin
      // para el resto
    end;
  end;
end;
Puede que no sea el método más eficiente, pero es relativamente simple de usar, lo único que hay que hacer es buscar los códigos ASCII para las letras que deseas filtrar, pero eso es fácil con el mapa de caracteres de Windows (que por cierto, en el caso de Windows XP da los valores en hexadecimal, pero pueden convertirse fácilmente a decimal con la calculadora científica)

Saludos, Hugo
Responder Con Cita
  #3  
Antiguo 08-04-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
bueno mas sencillo en ese caso es usar la función chr, lo que preguntaba es si conociendo el scancode de una tecla por ejemplo de 4 en el teclado numerico que está representado en delphi por la constante VK_NUMPAD4 era posible obtener el ascii de 52 (4) o conociendo una tecla cuyo código está representado por VK_SPACE es posible haya el equivalente que es 32.
__________________
self.free;
Responder Con Cita
  #4  
Antiguo 08-04-2007
d-hugo d-hugo is offline
Miembro
 
Registrado: abr 2007
Posts: 34
Poder: 0
d-hugo Va por buen camino
Ya te entiendo.
Algo más o menos así:
Código Delphi [-]
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  ascii: byte;
begin
  ascii:=MapVirtualKey(key, 2);
end;
Por cierto, para distinguir si las letras son mayúsculas, minúsculas o están acentuadas, creo que vas a necesitar sumergirte un poco más en las APIs de Windows.

Última edición por d-hugo fecha: 08-04-2007 a las 17:21:37.
Responder Con Cita
  #5  
Antiguo 08-04-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
ah que hábil, muchisimas gracias era justo lo que necesitaba
__________________
self.free;
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
Formato a un Char JudyA OOP 1 21-02-2007 04:43:11
Pasar un valor int a char locorez Varios 3 26-01-2006 03:01:57
conversion char a date gmontes Firebird e Interbase 2 23-09-2005 20:27:32
error en variables char carlosmoralesm C++ Builder 1 19-03-2005 20:22:23
password char clx ? Alex2000 Varios 1 15-12-2003 18:14:13


La franja horaria es GMT +2. Ahora son las 21:13:27.


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