5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Delphi 1~4 でコンソールアプリケーションを作る

Last updated at Posted at 2020-10-13

はじめに

何を今更な話です。

コンソールアプリケーションについて

正確には Win32 コンソールアプリケーション の事です。Delphi の殆どのバージョンでは、コンソールアプリケーションを

  • [ファイル | 新規作成 | アプリケーション] で開くアプリケーションウィザード
  • [ファイル | 新規作成 | コンソールアプリケーション]

いずれかから作れるのですが、コンソールアプリケーション用のウィザードが実装されたのは Delphi 5 からとなります。
image.png
Delphi 5よりも前のバージョンでもコンソールアプリケーションは作れたのですが、IDE から作ろうとするとちょっと面倒な手順を踏む必要がありました。

■ Delphi 1

Delphi 1 ではコンソールアプリケーションは作れませんし、MS-DOS アプリケーションも作れないのですが、CRT アプリケーションという疑似コンソールアプリケーションが作れます。
image.png

簡単なやり方

[オプション | 環境...] でオプションダイアログを開き、[ギャラリー] の プロジェクトの新規作成で表示 にチェックを入れておくと、
image.png
[ファイル | 新規作成] で CRT アプリケーションを作れるようになります。
image.png

面倒なやり方

  1. 新規にプロジェクトを作成します。
  2. [表示 | プロジェクトマネージャ] でプロジェクトマネージャを表示します。

    image.png
  3. ユニット (画像では Unit1) を選択し、[削除] ボタンを押します。保存を聞かれますが [いいえ] を押します。

    image.png
  4. [表示 | プロジェクトソース] を開きます。

開いたプロジェクトソースは次のようになっているので、

program Project1;

uses
  Forms;

{$R *.RES}

begin
  Application.Run;
end.

となっているのを

program Project1;

uses
  WinCRT;

begin

end.

と書き換えます。これで CRT アプリケーションが作れるようになります。

See also:

■ Delphi 2

ウィザードではコンソールアプリケーションを作れません。
image.png

簡単なやり方

次のファイルを Project1.dpr という名前で好きな場所にコピーします。

Project1.dpr
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  SysUtils;

begin

end.

[ファイル | 開く] で上記ファイルを開きます。

面倒なやり方

  1. [ファイル | 新規作成] でアプリケーションを選択します。
  2. [プロジェクト | プロジェクトから削除...] で Unit1 を削除します。

    image.png
  3. 保存を聞かれますが [いいえ] を押します。

    image.png
  4. [表示 | プロジェクトソース] を開きます。

開いたプロジェクトファイルを次のように書き換えます。

Project1.dpr
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  SysUtils;

begin

end.

共通

[プロジェクト | オプション...] で [リンカ] タブの コンソールアプリケーションの作成 にチェックを入れておきます。
image.png
uses 句に SysUtils を追加してあります。実際には uses 句がなくてもコンソールアプリケーションとして成立するのですが、別名保存しようとした際や、開き直した時にエラーが発生してしまいます。
image.png

■ Delphi 3

ウィザードではコンソールアプリケーションを作れません。
image.png

簡単なやり方

次のファイルを Project1.dpr という名前で好きな場所にコピーします。

Project1.dpr
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  SysUtils;

begin

end.

[ファイル | 開く] で上記ファイルを開きます。

面倒なやり方

  1. [ファイル | 新規作成] でアプリケーションを選択します。
  2. [プロジェクト | プロジェクトから削除...] で Unit1 を削除します。

    image.png
  3. 保存を聞かれますが [いいえ] を押します。

    image.png
  4. [表示 | プロジェクトソース] を開きます。

開いたプロジェクトファイルを次のように書き換えます。

Project1.dpr
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  SysUtils;

begin

end.

共通

[プロジェクト | オプション...] で [リンカ] タブの コンソールアプリケーションの作成 にチェックを入れておきます。
image.png
uses 句に SysUtils を追加してあります。実際には uses 句がなくてもコンソールアプリケーションとして成立するのですが、別名保存しようとした際や、開き直した時にエラーが発生してしまいます。
image.png

■ Delphi 4

ウィザードではコンソールアプリケーションを作れません。
image.png

簡単なやり方

次のファイルを Project1.dpr という名前で好きな場所にコピーします。

Project1.dpr
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  SysUtils;

begin

end.

[ファイル | 開く] で上記ファイルを開きます。

面倒なやり方

  1. [ファイル | 新規作成] でアプリケーションを選択します。
  2. [プロジェクト | プロジェクトから削除...] で Unit1 を削除します。

    image.png
  3. 保存を聞かれますが [いいえ] を押します。

    image.png
  4. [プロジェクト | ソース表示] でプロジェクトファイルを開きます。プロジェクトマネージャの Project1.exe の部分を右クリックし [ソース表示] を選んで開く事もできます。

    image.png

開いたプロジェクトファイルを次のように書き換えます。

Project1.dpr
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  SysUtils;

begin

end.

共通

[プロジェクト | オプション...] で [リンカ] タブの コンソールアプリケーション にチェックを入れておきます。
image.png
uses 句に SysUtils を追加してありますが、 uses 句がなくてもコンソールアプリケーションとして成立します。

コンソールアプリケーションに関連するルーチン

コンソール入出力ルーチンです。

ルーチン 名前空間 説明
Read() System ファイルからデータを読み込みます。
Readln() System ファイルからテキストを 1 行読み込みます。
Write() System ファイルにデータを書き込みます。
Writeln() System ファイルにデータを書き出し、行末マーカーを追加します。
  • Read() / Readln() はファイル変数を省略した場合、グローバル変数 Input が使用され、プロセス標準入力ファイルにアクセスします。
  • Write() / Writeln() はファイル変数を省略した場合、グローバル変数 Output が使用され、プロセス標準出力ファイルにアクセスします。

See also:

おわりに

Delphi 5 以降ならコンソールアプリケーションを作るのに苦労 (?) しなくていいって事ですね。

なお、Delphi 5 がウィザードで生成するコンソールアプリケーションのひな型は次のようなものになります。

Project1.dpr
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;

begin
  // ここにプログラムコードを書いてください。
end.

最新の 10.4 Sydney だと次のようなコードが生成されます。

Project1.dpr
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

begin
  try
    { TODO -oUser -cConsole メイン : ここにコードを記述してください }
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

最近の Delphi は macOS 用のコンソールアプリケーションや Linux (Enterprise 版以上) 用のコンソールアプリケーションも作れますヨ。
image.png
あと、コンソールアプリケーション用のアイコンがインストールフォルダ直下にあります。48x48, 32x32, 16x16 の 8bit / 32bit 色アイコンです。
image.png

See also:

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?