4
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?

Hello World あたたたた Delphi編

この記事は Hello World あたたたた Advent Calendar 2025 の記事です。

今日はDelphiで Hello World あたたたた を実装して解説していきます。

そもそも「Hello World あたたたた」が何かは 1日目の記事 をご覧ください。

コーディング例

Delphi IDEでコンパイル・実行できます。

program hello_world;

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  System.StrUtils;

var
  hako: string;
  running: Boolean;
  char: string;
  lastFive: string;

begin
  // ランダムジェネレータを初期化
  Randomize;
  
  // 変数の初期化
  hako := '';
  running := True;
  
  // メインループ
  while running do
  begin
    // 0か1をランダムに決める
    if Random(2) = 0 then
      char := 'あ'
    else
      char := 'た';
    
    // 画面に char を出力
    Write(char);
    
    // char を hako に追加
    hako := hako + char;
    
    // 最後の5文字を取得(文字列が5文字以上の場合)
    if Length(hako) >= 5 then
    begin
      lastFive := RightStr(hako, 5);
      
      // 最後の5文字が「あたたたた」なら
      if lastFive = 'あたたたた' then
      begin
        WriteLn; // 改行
        WriteLn('お前はもう死んでいる');
        running := False;
      end;
    end;
  end;
  
  // プログラム終了前に改行を追加(見やすくするため)
  WriteLn;
end.

コードと文法の解説

プログラムの構造

Delphiのプログラムは program キーワードで始まります。

program hello_world;
  • program の後にプログラム名を指定
  • プログラムの最後は end. で終了(ピリオドが必要)

コンソールアプリケーションの指定

{$APPTYPE CONSOLE}
  • {$APPTYPE CONSOLE} ディレクティブでコンソールアプリケーションとして設定
  • これにより、コマンドプロンプトで実行可能なプログラムになります

ユニットの使用(uses)

uses
  System.SysUtils;
  • uses 節で必要なユニット(ライブラリ)をインポート
  • System.SysUtils は文字列操作などの標準的な機能を提供

変数の宣言(var)

Delphiでは変数を var セクションで宣言します。

var
  hako: string;
  running: Boolean;
  char: string;
  lastFive: string;
  • var セクションで変数を宣言
  • 変数名: 型名; の形式で宣言
  • string は文字列型、Boolean は真偽値型(True または False
  • ちなみに、定数は const セクションで宣言

変数の代入

hako := '';
running := True;
  • := は代入演算子(右の値を左の変数に入れる)
  • 空文字列は '' で表現
  • True は真を表すBoolean値

繰り返し(while)

条件が True の間ずっと処理を続けます。

while running do
begin
  // 繰り返したい処理
end;
  • runningTrue なら続ける
  • beginend; でブロックを囲む
  • 条件が False になったらループを抜ける

条件判定(if / else)

Delphiの条件分岐は 明確で読みやすい

if Random(2) = 0 then
  char := 'あ'
else
  char := 'た';
  • = は「等しいかどうか」を判定
  • then の後に条件が真の場合の処理を記述
  • else の後に条件が偽の場合の処理を記述
  • 複数行の場合は beginend; で囲む

文字の出力(Write / WriteLn)

Delphiには複数の出力関数があります。

Write(char);      // 改行しない出力
WriteLn;          // 改行のみ
WriteLn('お前はもう死んでいる');  // 改行付き出力
  • Write() は改行しない出力
  • WriteLn() は改行付き出力(引数なしでも改行のみ)
    • #13#10 などの形でASCIIコードを指定した出力もできるので、 Write(#13#10); でも改行を出力できる
  • 文字列は '' で囲む

文字列の連結

Delphiの文字列は + でつなげられます。

hako := hako + char;
  • 前の文字列に後ろの文字を追加する
  • := で代入

文字列から最後の5文字を取り出す

StrUtils ユニットの RightStr 関数を使うと、文字列の終端から指定した文字数を取得できます。

uses
  System.SysUtils,
  System.StrUtils;  // RightStr関数を使うために追加

// 使用例
lastFive := RightStr(hako, 5);
  • RightStr(文字列, 文字数) の形式
  • 文字列の終端から指定した文字数を取得

乱数生成(Random)

Delphiは標準で Random 関数を持っています。

Randomize;           // ランダムジェネレータを初期化
if Random(2) = 0 then  // 0または1をランダムに生成
  • Randomize でランダムジェネレータを初期化(プログラム開始時に1回呼ぶ)
  • Random(n)0 〜 n-1 の整数をランダムに返す
  • この例では 0 → あ、1 → た という形で使用

Delphiの概要と歴史

Windowsアプリケーション開発の老舗言語。RAD(Rapid Application Development)ツールとして、GUIアプリケーションを短時間で開発できることで知られています。
近年はクロスプラットフォーム開発にも対応し、Windows、macOS、iOS、Android向けのアプリを単一のコードベースで開発可能になりました。

Turbo Pascalの後継として開発されており、C#の開発にDelphi開発陣が参加したことで影響を与えているとの話もある。

Delphiの特徴

  • RAD開発: ビジュアルデザイナでGUIを簡単に作成できる
  • 強力な型システム: コンパイル時に型チェックが行われるため、バグを早期発見できる
  • 豊富なコンポーネント: VCL(Visual Component Library)やFireMonkeyで多くのUIコンポーネントが利用可能
  • クロスプラットフォーム: 単一コードベースで複数プラットフォームに対応
  • データベース連携: 強力なデータベースアクセス機能を標準搭載
  • 高速な実行速度: ネイティブコードにコンパイルされるため実行速度が速い

Delphiの歴史

  • 開発者: ボーランド(現在はエンバカデロ・テクノロジーズ)
  • 誕生: 1995年
  • 名前の由来: 古代ギリシャの都市デルフォイ(Delphi)から。アポロンの神託で有名な場所
  • 前身: Turbo Pascal(1983年)から発展
  • 現在: エンバカデロ・テクノロジーズが開発・販売。Community Editionが無料で利用可能

Delphi Community Editionについて

今回の動作確認には、Delphi 12 Community Editionを使用しました。
詳細は エンバカデロの公式サイト をご覧ください。

個人的なコメント

DelphiといえばVisual Basicと並びたつRADツールという印象が残っています。
Windowsアプリを初めて作ったときはVisual Basic 2.0だったので、仕事でDephiを使うことになったとき(といっても10年近く前)には懐かしみがあったのも、今は良い思い出です。

おまけ

Cursorが書いてくれたから 説明用はCLIアプリとして書いていますが、IDEは以下のような画面です。

image.png

ボタンを押すと発動する Hello World あたたたた も簡単に作れます。
image.png

4
1
2

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
4
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?