How to Build Console Applications With No GUI

Two male office workers typing on laptops in office
Cultura RM Exclusive/Stefano Gilera/Getty Images

​Console applications are pure 32-bit Windows programs that run without a graphical interface. When a console application is started, Windows creates a text-mode console window through which the user can interact with the application. These applications typically don't require much user input. All the information a console application needs can be provided through command line parameters.

For students, console applications will simplify learning Pascal and Delphi - after all, all the Pascal introductory examples are just console applications.

New: Console Application

Here's how to quickly build console applications that run without a graphical interface.

If you have a Delphi version newer than 4, than all you have to do is to use the Console Application Wizard. Delphi 5 introduced the console application wizard. You can reach it by pointing to File|New, this opens up a New Items dialog - in the New page select the Console Application. Note that in Delphi 6 the icon that represents a console application looks different. Double click the icon and the wizard will set up a Delphi project ready to be compiled as a console application.

While you could create console mode applications in all 32-bit versions of Delphi, it's not an obvious process. Let's see what you need to do in Delphi versions <=4 to create an "empty" console project. When you start Delphi, a new project with one empty form is created by default. You have to remove this form (a GUI element) and tell Delphi that you want a console mode app. This is what you should do:

  1. Select File > New Application.
  2. Select Project > Remove From Project.
  3. Select Unit1 (Form1) and OK. Delphi will remove the selected unit from the uses clause of the current project.
  4. Select Project > View Source.
  5. Edit your project source file:
    • Delete all the code inside begin and end.
    • After the uses keyword, replace the Forms unit with SysUtils.
    • Place {$APPTYPE CONSOLE} right under the program statement.

You are now left with a very small program which looks much like a Turbo Pascal program which, if you compile it will produce a very small EXE. Note that a Delphi console program is not a DOS program because it is able to call Windows API functions and also use its own resources. No matter how you have created a skeleton for a console application your editor should look like:

program Project1;
uses SysUtils;

// Insert user code here

This is nothing more than a "standard" Delphi project file, the one with the .dpr extension.

  • The program keyword identifies this unit as a program's main source unit. When we run a project file from the IDE, Delphi uses the name of the Project file for the name of the EXE file that it creates - Delphi gives the project a default name until you save the project with a more meaningful name.
  • The $APPTYPE directive controls whether to generate a Win32 console or graphical UI application. The {$APPTYPE CONSOLE} directive (equivalent to the /CC command-line option), tells the compiler to generate a console application.
  • The uses keyword, as usual, lists all the units this unit uses (units that are part of a project). As you can see, the SysUtils unit is included by default. Another unit is included too, the System unit, though this is hidden from us.
  • In between the begin ... end pair you add your code.
mla apa chicago
Your Citation
Gajic, Zarko. "How to Build Console Applications With No GUI." ThoughtCo, Feb. 16, 2021, Gajic, Zarko. (2021, February 16). How to Build Console Applications With No GUI. Retrieved from Gajic, Zarko. "How to Build Console Applications With No GUI." ThoughtCo. (accessed March 21, 2023).