はじめてDelphiで作るプログラム!

プログラム言語

Delphiをはじめて使ってみました。
聞いたことはあったのですが、実際にプログラミングをした経験はありませんでした。

Delphiとは一言で、なかなかおもしろい言語です。
でも、流行っていないですね。

GUIを使うプログラムは、Visual BasicVisual C++が主流になっている中で、Delphiはほとんど影も形もない状態になっています。

Delphiといえば、Borland社が開発しました。

Delphi開発用のRAD Studio(Embarcadero Technologies, Inc)がありますが、2008年6月30日にEmbarcadero Technologies社がBorland社からDelphiを買収したようです。
RAD Studioは、Delphiの統合開発環境(IDE)です。

現在も開発は、Embarcadero Technologies(エンバカデロ・テクノロジーズ)社が行っています。
RAD Studioでは、DelphiやC++の開発が行えます。

おもしろそうだと思ったので、さっそくDelphiのテキストを購入し、RAD Studioの無料体験版をインストールして、プログラミングをしてみることにしました。

数本のかんたんなプログラムを作りました。
初心者にとっては、大変な驚きがありました。

Delphiの特徴を紹介します

Delphiとは、デルフィではなくデルファイと読みます。
Delphiが使用している言語は、Object Pascalです。

したがって、Delphiはオブジェクト指向型言語です。
オブジェクト指向型言語とは、プログラミングの中でデータや処理を関連付けながら、システムを構成することです。

オブジェクト指向型言語で代表的なものにJava、PHP、Python、C++、JavaScriptなどがあります。

また、何と言ってもDelphiの最大の特徴は、iOS、Android、Windows、macOSなど異なるプラットフォーム上で、同じ仕様のアプリケーションを動かせるクロスプラットフォームのプログラムであることです。

昨今のスマホ事情からも、アプリケーションソフトに関してはiOS・Android両対応であることが多く、Delphiは、このクロスプラットフォームアプリの開発にたいへん適した言語と言えます。

Delphiでかんたんなプログラミング

Delphiの統合開発環境(IDE)のRAD Studioを使用して、かんたんなプログラムを作りました。

Delphiの文法規則は他の言語と比べると、特に違いがあるのは、実行するプロシージャ(procedure)とは別にユニット(Unit)と呼ばれる宣言文があることと、命令行の最後尾にセミコロン(;)をつけることです。

ユニットはDelphi側で自動生成されます。
作成するプログラムによっては、宣言文を追記する必要があります。

また、セミコロンをつけるのところはC言語に似ていますが、少し雰囲気が違います。

実際のプログラミングでは、プロシージャと呼ばれる手続き文を記述するだけなので、プログラマーにとっては、比較的楽にプログラミングができます。

変数定義は、varからはじまる

どの言語でも変数を使用します。
変数を使用する前に、型などの宣言をしなければなりません。

定義方法は、以下のようになります。
var
I : Integer;
J : Single;
moji : Char;

基本のデータ型を紹介します。

【整数型】

データ型 範囲                 書式        
Integer-2147483648 ~ 2147483647符号付き32bit
Cardinal0 ~ 4294967295符号なし32bit
Shortint-128 ~ 127符号付き8bit
Smallint-32768 ~ 32767符号付き16bit
Longint-2147483648 ~ 2147483647符号付き32bit
Int64-2^63 ~ 2^63 – 1符号付き64bit
Byte0 ~ 255符号なし8bit
Word0 ~ 65535符号なし16bit
Longword0 ~ 4294967295符号なし32bit

【実数】

データ型 範囲     有効桁数サイズ  
Real5.0×10^324 ~ 1.7×10^308      15 ~ 168Byte
Single-1.5×10^45 ~ 3.4×10^387 ~ 84Byte
Double-5.0×10^324 ~ 1.7×10^30815 ~ 168Byte
Extended-3.6×10^4951 ~ 1.1×10^493210 ~ 2010Byte
Comp-2^63 ~ 2^63 – 119 ~ 208Byte
Currency-922337203685477.5808 ~ 22337203685477.580710 ~ 208Byte

【文字型】

データ型   用途     サイズ     
CharAnsiCharと同様  1Byte
AnsiCharANSI文字1Byte
WideCharUnicode文字1Word(16bit)

【文字列型】

データ型   用途     最大長     
ShorString下位互換性のため  255文字
AnsiStringANSI文字などに使用~2^31
WideStringUnicode文字など使用~2^30文字

処理は、begin~end;間に記述する

プログラムのプロセス(処理)を記述する部分ですが、例えばEditBoxに「Hello World」という文字列を編集し、背景色を明るいブルーにする場合、以下のようになります。

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := ‘Hello World!’;
Edit1.Color := clAqua;
end;

命令は一行ごとに記述して、末尾にセミコロン(;)を付けます。
必ずbegin~end;間に記述します。

他の言語では見かけない規則ですが、Object Pascalの必須の規則です。
まずは、慣れるところからです。

IF文の注意点

if文は、通常「if (条件文) then 実行文」もしくは「if (条件文) then 実行文1 else 実行文2」という形式で、条件文により実行されます。

セミコロン(;)までが1組の実行文です。

if a=1 then 
    b := 1;

2組以上ある場合は、実行文をbegin~end;の間に記述します。

if a=1 then 
  begin
    b := 1;
    c := 1;
  end;
if a=1 then 
  begin
    b := 1;
    c := 1;
  end  
else
  begin
    b := 2;
    c := 2;
  end;  

セミコロン(;)が抜けるとエラーになります。

実行文の区切りを正確に示しておかないと、実行文がコンパイラで判断できなくなりエラーになるということです。
IF文を記述するときの注意点です。

最低でも知っておきたいループ処理

Delphiのループ処理には、repeat文・while文・for文の3種類があります。

repeat文は、少なくとも1回は文を実行します。

  repeat
    k := i mod j;
    i := j;
    j := k;
    ShowMessage('i=' + InttoStr(i) + ' ' + 'j=' + InttoStr(j) + ' ' +
     'k=' + InttoStr(k));
  until j = 0;

while文は、条件がFalseの場合、文は実行されません。

  while i > 0 do
  begin
    j := j + i;
    i := i - 1;
    ShowMessage('i=' + InttoStr(i) + ' ' + 'j=' + InttoStr(j));
  end;

for文は、ループの回数を指定します。

  for i  := ListBox1.Items.Count - 1 downto 0 do
  begin
    ListBox1.Items[i] := UpperCase(ListBox1.Items[i]);
    ShowMessage('Item= ' + ListBox1.Items[i]);
  end;

ループ処理は、プログラムの処理内容によって使い分けをします。

実行してみました

前述の3つのループ処理を実行してみました。

ループ途中の変数の内容をShowMessage関数で表示させる簡単なプログラムで、ループ処理の動作確認をしました。
次のステップへ進むのが楽しみになります。

Delphiのまとめ

Delphiとは、Object Pascalを使用したオブジェクト指向のプログラミング言語のことで、統合開発環境(IDE)で開発します。

元々Delphiはボーランド社がTurbo Pascal / Borland Pascalの後継として開発したWindows用のRADツールでありましたが、近年ではエンバカデロ・テクノロジーズ社がDelphiを買収し、RAD StudioというIDEよりプログラム制作をしています。

これによりDelphiの未来も明るくなってきているようです。
たいへん興味を持てる言語でした!
今後、delphiで作られるアプリケーションが増えていくことを望みます!

コメント

タイトルとURLをコピーしました