Ver Mensaje Individual
  #3  
Antiguo 19-09-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, ya pensándole un poco más parece que se puede reducir a:

Código:
program Project1;

{$APPTYPE CONSOLE}

uses
  Windows, SysUtils;

var
  hStdIn: THandle;

function KeyPressed: Boolean;
var
  I: DWord;

begin
  GetNumberOfConsoleInputEvents(hStdIn, I);
  Result := I > 0;
end;

begin
  hStdIn := GetStdHandle(STD_INPUT_HANDLE);

  WriteLn('Hola ClubDelphi');
  WriteLn;
  Write('Oprime una tecla...');

  FlushConsoleInputBuffer(hStdIn);
  repeat
  until KeyPressed;
end.
A hStdIn se le asigna un "apuntador" a la entrada estandard (el teclado)

FlushConsoleInputBuffer vacía todo lo que haya en el buffer de entrada (en este caso el teclado) antes del ciclo para omitir teclasos previos a la ejecución.

GetNumberOfConsoleInputEvents devuelve en I el número de entradas en el buffer (en este caso del teclado). Al principio no habrá ninguna (ya que se vació el buffer) y al oprimir una tecla habrá por lo menos una entrada lo que ocasiona que la función KeyPressed devuelva true.

Así es como lo entiendo. Puedes buscar más en la ayuda del sdk de Windows (incluida en Delphi).

// Saludos
Responder Con Cita