はじめに
何を今更な話です。
コンソールアプリケーションについて
正確には Win32 コンソールアプリケーション の事です。Delphi の殆どのバージョンでは、コンソールアプリケーションを
- [ファイル | 新規作成 | アプリケーション] で開くアプリケーションウィザード
- [ファイル | 新規作成 | コンソールアプリケーション]
いずれかから作れるのですが、コンソールアプリケーション用のウィザードが実装されたのは Delphi 5 からとなります。
Delphi 5よりも前のバージョンでもコンソールアプリケーションは作れたのですが、IDE から作ろうとするとちょっと面倒な手順を踏む必要がありました。
■ Delphi 1
Delphi 1 ではコンソールアプリケーションは作れませんし、MS-DOS アプリケーションも作れないのですが、CRT アプリケーションという疑似コンソールアプリケーションが作れます。
簡単なやり方
[オプション | 環境...] でオプションダイアログを開き、[ギャラリー] の プロジェクトの新規作成で表示
にチェックを入れておくと、
[ファイル | 新規作成] で CRT アプリケーションを作れるようになります。
面倒なやり方
- 新規にプロジェクトを作成します。
- [表示 | プロジェクトマネージャ] でプロジェクトマネージャを表示します。
- ユニット (画像では Unit1) を選択し、[削除] ボタンを押します。保存を聞かれますが [いいえ] を押します。
- [表示 | プロジェクトソース] を開きます。
開いたプロジェクトソースは次のようになっているので、
program Project1;
uses
Forms;
{$R *.RES}
begin
Application.Run;
end.
となっているのを
program Project1;
uses
WinCRT;
begin
end.
と書き換えます。これで CRT アプリケーションが作れるようになります。
See also:
- Delphi で Pascal-S をコンパイルする (16bit 版 Delphi)
- Delphi 1.0 Client/Server が無償公開されたので Windows 7 の XP Mode にインストールしてみる (Qiita)
- <3> Macintosh 用 Pascal のオブジェクト指向拡張 (Pascal へのオブジェクト指向拡張の歴史と Delphi) (Qiita)
- Macintosh Programmer's Workshop (MPW) Object Pascal の簡単な使い方 (Qiita)
■ Delphi 2
簡単なやり方
次のファイルを Project1.dpr
という名前で好きな場所にコピーします。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils;
begin
end.
[ファイル | 開く] で上記ファイルを開きます。
面倒なやり方
- [ファイル | 新規作成] でアプリケーションを選択します。
- [プロジェクト | プロジェクトから削除...] で Unit1 を削除します。
- 保存を聞かれますが [いいえ] を押します。
- [表示 | プロジェクトソース] を開きます。
開いたプロジェクトファイルを次のように書き換えます。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils;
begin
end.
共通
[プロジェクト | オプション...] で [リンカ] タブの コンソールアプリケーションの作成
にチェックを入れておきます。
uses 句に SysUtils
を追加してあります。実際には uses 句がなくてもコンソールアプリケーションとして成立するのですが、別名保存しようとした際や、開き直した時にエラーが発生してしまいます。
■ Delphi 3
簡単なやり方
次のファイルを Project1.dpr
という名前で好きな場所にコピーします。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils;
begin
end.
[ファイル | 開く] で上記ファイルを開きます。
面倒なやり方
- [ファイル | 新規作成] でアプリケーションを選択します。
- [プロジェクト | プロジェクトから削除...] で Unit1 を削除します。
- 保存を聞かれますが [いいえ] を押します。
- [表示 | プロジェクトソース] を開きます。
開いたプロジェクトファイルを次のように書き換えます。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils;
begin
end.
共通
[プロジェクト | オプション...] で [リンカ] タブの コンソールアプリケーションの作成
にチェックを入れておきます。
uses 句に SysUtils
を追加してあります。実際には uses 句がなくてもコンソールアプリケーションとして成立するのですが、別名保存しようとした際や、開き直した時にエラーが発生してしまいます。
■ Delphi 4
簡単なやり方
次のファイルを Project1.dpr
という名前で好きな場所にコピーします。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils;
begin
end.
[ファイル | 開く] で上記ファイルを開きます。
面倒なやり方
- [ファイル | 新規作成] でアプリケーションを選択します。
- [プロジェクト | プロジェクトから削除...] で Unit1 を削除します。
- 保存を聞かれますが [いいえ] を押します。
- [プロジェクト | ソース表示] でプロジェクトファイルを開きます。プロジェクトマネージャの
Project1.exe
の部分を右クリックし [ソース表示] を選んで開く事もできます。
開いたプロジェクトファイルを次のように書き換えます。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
SysUtils;
begin
end.
共通
[プロジェクト | オプション...] で [リンカ] タブの コンソールアプリケーション
にチェックを入れておきます。
uses 句に SysUtils
を追加してありますが、 uses 句がなくてもコンソールアプリケーションとして成立します。
コンソールアプリケーションに関連するルーチン
コンソール入出力ルーチンです。
ルーチン | 名前空間 | 説明 |
---|---|---|
Read() | System | ファイルからデータを読み込みます。 |
Readln() | System | ファイルからテキストを 1 行読み込みます。 |
Write() | System | ファイルにデータを書き込みます。 |
Writeln() | System | ファイルにデータを書き出し、行末マーカーを追加します。 |
- Read() / Readln() はファイル変数を省略した場合、グローバル変数 Input が使用され、プロセス標準入力ファイルにアクセスします。
- Write() / Writeln() はファイル変数を省略した場合、グローバル変数 Output が使用され、プロセス標準出力ファイルにアクセスします。
See also:
おわりに
Delphi 5 以降ならコンソールアプリケーションを作るのに苦労 (?) しなくていいって事ですね。
なお、Delphi 5 がウィザードで生成するコンソールアプリケーションのひな型は次のようなものになります。
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
begin
// ここにプログラムコードを書いてください。
end.
最新の 10.4 Sydney だと次のようなコードが生成されます。
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 版以上) 用のコンソールアプリケーションも作れますヨ。
あと、コンソールアプリケーション用のアイコンがインストールフォルダ直下にあります。48x48, 32x32, 16x16 の 8bit / 32bit 色アイコンです。
See also: