クロスプラットフォームのGUI開発環境の一つに「Lazarus」があります。Lazarusは、Delphi7によく似たオープンソースの開発環境です。Pascal(Free Pascal Compiler)を利用してプログラムを開発します。長年継続して開発が続けられており、2024年5月に3.4がリリースされました。多くのコンポーネントを組み合わせてネイティブなGUIアプリを作成できます。今回は、WindowsとmacOSで使う方法を紹介します。

  • Lazarusでデスクトップアプリを作ってみよう

    Lazarusでデスクトップアプリを作ってみようs

Lazarusとは?

Lazarusは、Delphi7によく似た開発環境です。クロスプラットフォームの開発環境であり、Windows/macOS/Linuxなど幅広い環境で動作します。一般的なLinuxをはじめ、Raspberry Piなどで動作させることもできます。

そもそも、Lazarusの開発は1999年2月に始まりました。当初はLinuxを中心に開発が行われており、Windows版には多くのバグが多かったようです。その後、多くの開発者が参加して、Windows版やその他のOSでも安定して動作するように改良されていきました。

なお、本連載の22回目では、Pascal言語の歴史について紹介し、その中でLazarusについても言及しました。

Lazarusはその見た目からも分かる通り、開発当初はDelphiのオープンソースの代替版のようなものとして始まっていました。しかし、長年の継続開発により、ただのDelphiの代替版ではなく、独自の強力な開発ツールに育ってきました。

WindowsへLazarusのインストール

Lazarusには、Windows用のインストーラーが用意されています。こちら(https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2064%20bits/Lazarus%203.4/)からダウンロードできます。いくつかファイルがありますが、「lazarus-3.4-fpc-3.2.2-win64.exe」をクリックしてダウンロードしましょう。

そして、ダウンロードしたインストーラーをダブルクリックして、Lazarusをインストールしましょう。

  • Lazarusのインストーラーを実行したところ

    Lazarusのインストーラーを実行したところ

インストールが完了したら、Windowsメニューから「すべてのアプリ > Lazarus > Lazarus」を選んで起動します。

  • WindowsでLazarusを起動したところ

    WindowsでLazarusを起動したところ

macOSへLazarusのインストール

macOS用のLazarusのインストーラーも用意されています。こちら(https://sourceforge.net/projects/lazarus/files/Lazarus%20macOS%20x86-64/)からインストーラーをダウンロードします。

ただし、macOS用のインストーラーは少し注意が必要です。と言うのも、Windows用のインストーラーには、Lazarusを実行するのに必要なFree Pascalが最初から含まれているのですが、macOS版には、Free Pascalが含まれていません。そのため、下記のようなファイル一覧が表示されますが、一つずつクリックしてダウンロードして、インストールしましょう。この時、「不明な開発者」のエラーが表示される場合は、PKGファイルを右クリックして「開く」をクリックして実行しましょう。

  • Lazarusのダウンロードファイル一覧

    Lazarusのダウンロードファイル一覧

ダウンロードした3つのpkgファイルを順にダブルクリックしてインストールします。インストール自体は簡単で、「続ける」ボタンをクリックしていくだけでインストールできます。

  • macOSでLazarusをインストールしているところ

    macOSでLazarusをインストールしているところ

Lazarusを起動するには、Finderで「アプリケーション > Lazarus」ディレクトリを開いて「lazarus.app」を起動します。繰り返しになりますが、Lazarusだけでは動きませんので、Free Pascal Compiler(fpc)のインストールを完了させた上で、Lazarusを実行する必要があります。

ちなみに、Homebrewを使ってFree Pascalだけをインストールしている場合には、一度アンインストールして、上記のインストーラーを使って、Free Pascalをインストールするとトラブルが少ないようです。

  • macOSでLazarusを起動したところ

    macOSでLazarusを起動したところ

一番簡単なLazarusアプリを作ろう

最初に、一番簡単なアプリを作ってみましょう。上記の手順で、Lazarusを起動すると、Form1というウィンドウが表示されることでしょう。

最初にプロジェクトを保存しましょう。メニューから「ファイル > 保存」をクリックして、プロジェクトを保存しましょう。何度か保存ダイアログが表示されます。最初がプロジェクト名なので、「hello.lpr」という名前で保存し、次に、プロジェクト内のメインフォーム(Form1)に関するプログラムファイルを保存します。そのため、「frmMain.pas」という名前で保存しましょう。

次に、フォーム上にボタンを配置してみましょう。Lazarusではボタンやエディタなどの部品を「コンポーネント(Component)」と呼びます。画面上部にあるコンポーネントパレット[Standard]からボタン(TButton)をダブルクリックして配置します。

  • ボタンをフォームに配置しよう

    ボタンをフォームに配置しよう

ボタンを配置したら、ボタンをクリックして選択状態にして、オブジェクトインスペクタにある「Caption」プロパティに「挨拶ボタン」と入力しましょう。すると、ボタンのラベル(キャプション)が変更されます。もしも、オブジェクトインスペクタが表示されていない場合は、画面上部のメニューより「表示 > オブジェクトインスペクタ」をクリックして表示させます。

  • キャプションを変更しよう

    キャプションを変更しよう

そして、オブジェクトインスペクタの「イベント」のタブを開きます。すると、「OnClick」という項目があるので、これをダブルクリックします。そうすることで、ソースエディタに「Button1Click」というメソッドが自動的に挿入されます。

  • キャプションを変更しよう

    キャプションを変更しよう

続いて、ソースエディタのButton1Clickを下記のように編集しましょう。

procedure TForm1.Button1Click(Sender: TObject);
begin
    // === ここにボタンをクリックした時の処理を記述 ===
     ShowMessage('こんにちは');
end;

すると、下記のようになるでしょう。

編集したら、画面上部の保存ボタンを押して、プロジェクトを保存します。その後、実行ボタンを押すか、メニューから「実行 > 実行」をクリックしてプログラムを実行してみましょう。

  • macOSで実行したところ

    macOSで実行したところ

すると、ボタンが配置されたウィンドウが表示されます。「挨拶ボタン」をクリックすると、「こんにちは」とメッセージボックスが表示されます。

WindowsでもmacOSでも全く同じ手順で作成できる

なお、ここまでの手順は、macOSの画面で紹介しました、Lazarusはマルチプラットフォームのツールです。全く同じ手順で、Windowsでも実行できます。Windowsで実行すると、下記のように表示されます。

  • Windowsで実行したところ

    Windowsで実行したところ

FizzBuzzを出力するプログラムを作ってみよう

それでは、本連載で恒例のFizzBuzzを出力するプログラムを作ってみましょう。FizzBuzz問題とは次のような問題です。

Windowsで実行したところ1から100までの数を出力するプログラムを書いてください。ただし、3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」と表示してください。3と5の倍数の時は「FizzBuzz」と表示してください。

それでは、Lazarusを操作してみましょう。

メニューから「プロジェクト > 新規プロジェクト」をクリックして、新規プロジェクトを作成しましょう。そして、プロジェクトを保存したら、Form1にTListBoxを配置しましょう。

コンポーネントパレットから次の図のようなTListBoxを探してフォームに貼り付けましょう。このリストボックスの中にFizzBuzzの一覧を表示するようにしてみます。

  • ListBoxをフォームに配置しよう

    ListBoxをフォームに配置しよう

続いて、フォームのサイズなどを調整してボタンを一つ配置してみましょう。先ほどと同じ手順で、オブジェクトインスペクタでCaptionを「FizzBuzz出力」と変更して、イベントの「OnClick」をダブルクリックしましょう。

  • ボタンを配置しよう

    ボタンを配置しよう

そして、コードエディタに追加されたButton1Clickメソッドを、以下のように書き換えましょう。これは、ボタンをクリックすると、FizzBuzz問題を解いて結果をListBox1に出力するプログラムです。

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  isFizz: Boolean;
  isBuzz: Boolean;
begin
  ListBox1.Items.Clear; // ListBoxを空っぽにする
  for i := 1 to 100 do begin // 1から100まで繰り返す
    isFizz := (i mod 3) = 0;
    isBuzz := (i mod 5) = 0;
    if isFizz and isBuzz then begin // FizzBuzzの判定
      ListBox1.Items.Add('FizzBuzz'); // リストボックスに追加
    end else if isFizz then begin
      ListBox1.Items.Add('Fizz');
    end else if isBuzz then begin
      ListBox1.Items.Add('Buzz');
    end else begin
      ListBox1.Items.Add(IntToStr(i));
    end;
  end;
end;

プログラムを書き換えて保存したら、プログラムを実行しましょう。

この記事は
Members+会員の方のみ御覧いただけます

ログイン/無料会員登録

会員サービスの詳細はこちら