Uff.. me había asustado...
A ver si este ejemplo te sirve:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add(DateTimeToStr(Now));
Sleep(1000);
end;
Yo tengo el cuando el usuario hace varios clicks seguidos sobre ese botón, con la velocidad como para que sean interpretados como simples clicks, el hilo de ejecución ingresa en el método Button1Click y hasta que no sale de ahí no responderá a los mensajes del sistema operativo, como hizo mas de un click, los mensajes quedan encolados y se dispararán inmediatamente despues de que la aplicación responda a los mensajes de sistema operativo.
¿Fui claro?...o la compliqué