Ord(), keydown me ajude a entender..

Delphi

19/08/2014

teste:='aa bb cc AA BB CC';
for i:=1 to length(teste) do
begin
x:=teste[i];
keybd_event(Ord(x),0,WM_KEYDOWN,0); // Pressiona a tecla Z
keybd_event(Ord(x),0,KEYEVENTF_KEYUP,0); //LIBERTA O Z


ao invés de imprimir o que está no "teste" ele imprimi isso.:
11 22 33 aa bb cc

Como entender um negócio desses? Me ajude a compreender melhor todo este tramite? obrigado
Alexandre

Alexandre

Curtidas 0

Melhor post

Renato Rubinho

Renato Rubinho

19/08/2014

Buenos,

A tecla para a letra minúscula e maiúscula é a mesma.
Você tem que interpretar qual delas está precisando, "pressionar o shift" junto quando necessário e mandar para o Ord() sempre em maiúscula.

var
  x    : char;
  teste: string;
  sAux1: string;
  i    : integer;
begin
  teste := 'aa bb cc AA BB CC';

  for i:=1 to length(teste) do
  begin
    sAux1 := AnsiUpperCase(teste[i]);
    x     := sAux1[1];

    if teste[i] = AnsiUpperCase(teste[i]) then
      keybd_event(VK_LSHIFT, 0, KEYEVENTF_EXTENDEDKEY or 0, 0); //pressiona Shift

    keybd_event(Ord(x),0,WM_KEYDOWN,0); // Pressiona a tecla
    keybd_event(Ord(x),0,KEYEVENTF_KEYUP,0); //LIBERTA

    if teste[i] = AnsiUpperCase(teste[i]) then
      keybd_event(VK_LSHIFT, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); //libera
  end;


Abraççç,
Renato
GOSTEI 1

Mais Respostas

Alexandre

Alexandre

19/08/2014

mensagem:= edit2.text;
for i:=1 to length(teste) do
begin
aux:=uppercase(mensagem);
x:=aux[i];
keybd_event(Ord(x),0,WM_KEYDOWN,0); // Pressiona a tecla Z
keybd_event(Ord(x),0,KEYEVENTF_KEYUP,0); //LIBERTA O Z


Quando coloco caraceteres do tipo, "!" "," "." e por ai vai, não aparece, ou ainda acaba bugando o texto, alterando-os de posição..

Obrigado pela ajuda!
GOSTEI 0
Alexandre

Alexandre

19/08/2014

UP

Quando coloco caraceteres do tipo, "!" "," "." e por ai vai, não aparece, ou ainda acaba bugando o texto, alterando-os de posição.. alguém sabe? rs
GOSTEI 0
Renato Rubinho

Renato Rubinho

19/08/2014

Olha esse link...

Parece bem completo:

Função
GOSTEI 1
POSTAR