Pregunta

¿Puedo mostrar el resultado de un bucle en la ventana de la consola en un VCL solicitud de depuración propósitos?

¿Fue útil?

Solución

En Windows, la forma más sencilla a la información de depuración de salida es utilizar OutputDebugString() y luego utilizar una aplicación capaz de recibir esa salida. El visor de eventos en el propio IDE de Delphi es capaz de recibir esa entrada, o puede utilizar la DebugView SysInternals traslado de los productos en un sistema que no tiene instalado el IDE. Que yo sepa, GExperts tiene una herramienta similar también. Esto se debe a una aplicación de interfaz gráfica de usuario no tiene por defecto una consola dónde escribir la salida, de lo contrario se tienen que crear una (véase la respuesta de Gerry).

Una de las ventajas de OutputDebugString() es que la aplicación funcionará sin problemas, incluso si una llamada se desliza en una versión de lanzamiento (o se si se deja allí intencionalmente), pero tenga cuidado a continuación, a la información sensible no de salida, ya que pueden ser leídos utilizando uno de las herramientas anteriormente.

También podría crear un formulario ad-hoc (es decir, con un control memo) y la salida de ruta hasta allí.

También hay facilidades de registro avanzadas como SmartInspect , CodeSite y otros.

Otros consejos

La forma más sencilla es compilar como una aplicación de consola, pero poner la parte de atrás de código marco de aplicación normal en el DPR.

program Project2;

{$APPTYPE CONSOLE}

uses
  Forms,
  SysUtils,
  Unit1 in 'Unit1.pas' {Form1};

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  writeln('Hello, World!');
  Application.Run;
end.

Una forma un poco más compleja es utilizar la llamada API de Windows AllocConsole:

program Project2;

uses
  Forms,
  SysUtils,
  Windows,
  Unit1 in 'Unit1.pas' {Form1};

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  AllocConsole;
  writeln('Hello, World!');
  Application.Run;
end.

Este método tiene la desventaja de crear una nueva consola si se llama desde la línea de comandos (por lo general). De memoria conseguir la redirección de trabajo requiere algo más de código también. La ventaja es que se puede decidir asignar la consola en tiempo de ejecución, en lugar de tiempo de compilación.

Delphi tiene una opción para esto, cheque "Generar aplicación de consola" en las opciones del vinculador para el proyecto. E / S estándar se dirige a una ventana de la consola que acompañará a su aplicación GUI. A continuación, puede utilizar Writeln etc. . como lo haría normalmente.

salida (o entrada ) a partir de los documentos:

Programas de Delphi tienen una salida estándar archivo si están vinculados como consola aplicaciones.

Si usted escribió la aplicación de consola, puede probar la función OutputDebugString en la aplicación de consola (no lo probé).

O puede capturar el resultado de la aplicación de consola como en captura la salida de un DOS (comando / consola) ventana .

Además, se puede comprobar Clases de aplicación de consola Runner . Yo uso estas clases. Creo que son grandes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top