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