Mam's WebSite
Delphiでお手軽プログラミング

トップページ⇒Delphiでお手軽プログラミング(はじめに)

Delphiでお手軽プログラミング ~はじめに


Delphiってどんな言語?

Delphiを一言でいうならば、マイクロソフト社VB6とC++を足した感じ。
ですので昔少しVB6やってたという人は、結構簡単にプログラムを作成することができます。
教育言語Pascalにオブジェクト指向が追加された言語だそうです。(教育言語なのでわかりやすいです。)
まずはVB6みたいに使ってみて、慣れてきたら構造体やポインタやオブジェクト指向に少しずつチャレンジしてみても十分にプログラムを作成できます。

Delphiのダウンロード

DelphiはStarter Editionが無料でダウンロードして使うことができます。
https://www.embarcadero.com/jp/products/delphi/starter
このサイトの「Starterを無料ダウンロード」の画像をクリックして、アカウントを作成するとダウンロードしてインストールできるみたいです。

プログラムに慣れてきたら上位版(DB接続できたり、AndroidやMacOSX、iPhoneのプログラムができるものもあるようです)を購入するなり、他社の開発製品を使うなりすればいいかと。

何かプログラムを作成してみる

(1)Delphiを起動して新規プロジェクトを作成する。

ファイル⇒新規作成⇒VCLフォームアプリケーションをクリックします。


(2)ボタンを配置する。

右の下にあるツールパレットの「Standard」グループ内にある「TButton」をフォームへドラッグ&ドロップします。
そうするとButton1が作成されます。


(3)Button1が選択された状態で、左ペインにある[プロパティ Caption]を「Button1」から「開く」に変更します。

ボタンに表示されている文字がButton1から開くに変わりました。


(4)ファイルを開くダイアログをフォームへ配置する。

右下にあるツールパレットの「Dialog」グループ内にある「TOpenDialog」をフォームへドラッグ&ドロップします。


(5)OpenDialog1を選択した状態で、プロパティ「フィルター」を設定する。

左ペインにあるプロパティ「Filter」の[・・・]ボタンをクリックします。


(6)フィルタ名、フィルタを設定する。

フィルタ名とフィルタに「*.txt」を入力し、[OK]ボタンをクリックします。

Filterプロパティに「*.txt|*.txt」と入力されました。


(7)TMemoをフォームにドラッグ&ドロップし、大きさを大きくします。

右下にあるツールパレットの「Standard」グループ内にある「TMemo」をフォームへドラッグ&ドロップし、マウスでドラッグして大きくします。


(8)Memo1を選択した状態でScrollbarsプロパティを設定します。

Memo1を選択した状態でScrollbarsプロパティを「ssBoth」に設定します。(スクロールバーが表示されます)


(9)「Button1」クリックしてクリック時イベントを作成する。

「Button1」(開く ボタン)をクリックして選択状態にします。左ペインのタブを「イベント」に切り替えて「OnClick」の右側をダブルクリックします。


(10)そろそろプログラムを記述する。

上記(9)の操作により「Button1」をクリックしたときのプログラムを記述する準備が整いました。


(11)プログラムを記述する。

以下の赤字の部分を記述します。
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Memo1.Lines.LoadFromFile(
      OpenDialog1.FileName,TEncoding.ANSI);
  end;
end;


<参考>下にあるのタブにより「デザイン」と「ソースコード」の表示を切り替えできます。



<参考>プログラムを以下に変えると、文字コードUTF-8のテキストファイルを読み込めます。
(元のソースコードだと文字コードShift-JISのテキストファイルを読み込めます。)
      OpenDialog1.FileName,TEncoding.ANSI);
            ↓
      OpenDialog1.FileName,TEncoding.UTF8);



(12)プログラムを保存する

上部にある「すべて保存」ボタンをクリックします。


保存先フォルダを「ドキュメント\Embarcadero\Studio\Project」にして、「新しいフォルダ」をクリックし、フォルダ名を「テキストエディタ」にして、このフォルダをダブルクリックします。

「保存」ボタンを押します。(1つのフォームとそのプログラムの保存)


次にプロジェクト(複数のフォームを束ねるようなもの。1つのフォームでも存在する)の保存先とファイル名を聞いてきますので、そのまま「保存」ボタンを押します。

これで作成したプログラムの保存が終わりました。

(13)実行してみる。

上部にある右矢印ボタン、またはキーボードのF9を押すとコンパイル(パソコンが理解できる機械語へ翻訳すること)され実行できます。


開くボタンを押すと、テキストファイルを選択できます。テキストファイルを選んで「開く」ボタンを押すとテキストファイルを表示できます。


実行ファイルは既に生成されていて、
c:\users\[OSログインしたユーザー名]\Documents\Embarcadero\Studio\Projects\テキストエディタ\Win32\Debug\Project1.exe
です。ダブルクリックでも実行できます。
Delphiで作成した実行ファイルは通常、ほかのファイルに依存しないので、単体で実行することができます。(ランタイム配布などは通常は必要なし。他に何かインストールなどしなくても実行ファイを配布するだけで動作します。)

上記サンプルではファイルを開くだけですが、保存はTSaveDialog(デフォルトでSaveDialog1の名前になる)と保存用のTButton(デフォルトでButton2の名前になる)をドラッグ&ドロップして、保存用のボタンのOnClickイベントに以下ソースコードを入力するだけです。
procedure TForm1.Button2Click(Sender: TObject);
begin
  if SaveDialog1.Execute then
  begin
    Memo1.Lines.SaveToFile(SaveDialog1.FileName,TEncoding.ANSI);
  end;
end;
				
(UTF8で保存する場合はMemo1.Lines.SaveToFile(SaveDialog1.FileName,TEncoding.UTF8);とする)  


既にお気づきになった方もいらっしゃるかもしれませんが、DelphiではVB6のようにソースコードを記述するだけでオブジェクト指向プログラミングになっています。
ソースコードを見ると、TFormクラスから派生したTForm1クラスをプログラミングしていたことがわかります。
//ユニット名(このファイル名は必ずユニット名.pasでなければならない。)
unit Unit1;
//宣言部
interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)  //TFormクラスの派生クラスTForm1の宣言
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

//グローバル変数の宣言
var
  Form1: TForm1;  //TForm1クラスのインスタンスが入る変数Form1の宣言

//実装部
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Memo1.Lines.LoadFromFile(
      OpenDialog1.FileName,TEncoding.ANSI);
  end;
end;

end.

Mam's WebSite