Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Limpiar el buffer del teclado (https://www.clubdelphi.com/foros/showthread.php?t=58265)

sur-se 14-07-2008 18:55:30

Limpiar el buffer del teclado
 
Hola. Estoy tratando de crear un proceso que limpie el buffer de teclado o espere hasta que ya no existan más teclas pendientes de procesar, pero no consigo hacer que funcione. He buscado en el foro pero no he encontrado nada de como limpiar el buffer de teclado.
El código que probé es el siguiente:

Código:

while GetInputState do application.processmessages;
También he estado viendo de usar GetQueueStatus, pero no lo veo claro.
Alguien me puede indicar una manera sencilla de realizarlo.
Gracias.

sur-se 15-07-2008 10:49:32

Hola. Me respondo a mi mismo porque he encontrado una posible solución en la página de Torry's:

Código:

procedure EmptyKeyQueue;
var
  Msg: TMsg;
begin
  while PeekMessage(Msg, 0, WM_KEYFIRST, WM_KEYLAST,
    PM_REMOVE or PM_NOYIELD) do;
end;

procedure EmptyMouseQueue;
var
  Msg: TMsg;
begin
  while PeekMessage(Msg, 0, WM_MOUSEFIRST, WM_MOUSELAST,
    PM_REMOVE or PM_NOYIELD) do;
end;

Un saludo.


La franja horaria es GMT +2. Ahora son las 11:53:35.

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