que acaba de intentar
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
{$IFDEF CONSOLE}
beep;
{$ENDIF}
end.
y espera a escuchar una beep
en tiempo de ejecución, pero no. La siguiente prueba funciona, sin embargo:
if IsConsole then
beep;
¿Por qué no funciona la prueba en tiempo de compilación? Por lo que puedo entender desde this doc, seguramente debería funcionar.
Oh, sí, esto es aún mejor. Pero ¿por qué en el mundo no está activada esta opción de forma predeterminada cuando selecciona Nueva/Aplicación de consola? –
@Andreas: es diferente de '$ APPTYPE CONSOLE', también puede seleccionar la opción del vinculador para una aplicación GUI y redirigir las E/S a la ventana de la consola. –
Sertac, no entiendo tu comentario. ¿Cómo difiere la directiva del compilador de la opción IDE, excepto que este último aparentemente define CONSOLE automáticamente? Cualquiera de los dos establece el encabezado PE que indica el subsistema a usar, ¿verdad? Andreas, ¿hay algo que le impida agregar manualmente CONSOLA a la lista de símbolos definidos en las opciones del compilador? –