MoonWolf(むーんうるふ)です。

 

私は最初に、Lazarusラザラス(言語:Pascal)の書籍を、

日本語と英語を合わせて数冊書きました。

主にゲームの作成を通して、プログラム力を上げてみませんか?

といった趣旨のものでした。

 

Lazarus書籍の日本語はほとんどなく、

私の書籍はそのスキマをすこし埋めることに

貢献できたかのように感じました。

 

その後、Python、JavaScript、なでしこ3、

Unity C#、JAVA、SQLDB(SQLite)

これらを経験しました。

 

その経験を元手に、もう一度、Lazarus(Pascal)の

価値を改めてお伝えしたくなりました。

もはや、以前のMoonWolfでないのです。

 

出来上がった内容がこちらです。

『MoonWolfと学ぶ PASCAL文法 超入門編』

Lazarus IDEを使った直観的なプログラム開発 

※AmazonでMoonWolfと学ぶと検索

 

 

Lazarus/Delphiでは、他の言語にない

フォームデザイナーとオブジェクトインスペクターがあるのです。

これにより、Lazarusユーザーは

画面を見ながら直観的にプログラムの作成ができます。

 

とは言え、プログラム言語PASCAL(ぱすかる)の文法知識が必要です。

実際に私がLazarusを使い、

スクリーンショットをたくさん撮り、

GitHubにコードを乗せながら、

PASCALの文法の要点を説明しています。

 

人と同じことを書いていたのでは書籍にはなりません。

本書には私独自の視点が数多く盛り込まれています。

 

 

◆LazarusはOOPをフル装備している、

だからOOPをすべて理解しないと使えないのではないか?

 

 

Noです。

コンポーネントとして無意識にOOPの恩恵にあずかりますが、

自作OOPクラス(設計図)を作るまでに、

Lazarusユーザーとしての成長段階を示しています。

私でさえ、自作OOPは現在のところ使っていません。

Lazarusはプロジェクト直下にUnit単位のプログラムであり、

そのUnitをいくらでも作成できます。

自作OOPクラスを作成しなくても、この複数Unitでほぼ何でもできてしまいます。

 

 

◆LazarusはDelphiの真似事の

IDE(プログラム統合開発環境)ではないのか?

 

Noです。

書籍に示してありますが、法的にLazarusの正当性は証明されています。

DelphiとLazarusはお互いを認め合い、切磋琢磨する関係にあります。

お互いに異なるシェアをターゲットにしています。

 

 

◆Lazarusは難しいのではないか?

 

Noです。

私のこの書籍をご覧ください。

Pascal独自の文法の厳格さはあるものの、

しっかりしたプログラムが作成できるように設計されています。

プログラムの曖昧性をできるだけ排除される仕組みになっています。

また、コードが人間の目で見て読みやすいです。

そして、何といっても、コンパイル時にエラーが発見されやすいのです。

この恩恵は大きいです。

 

 

◆Lazarusのファイル操作は難しいのではないか?

 

 

Noです。

これがPascalのファイル操作の基本です。

私がこのファイル操作の詳細を説明しています。

 

 

これがファイル操作をした実際のアプリの例です。

メモに書かれた内容をテキストファイルに保存します。

アプリを立ち上げ直すと、

自動的にそのファイルを読み込むように設計しました。

ファイルの扱い方を丁寧に説明しています。

 

本書は他の言語を使っていて、Lazarus(Pascal)とは

どういった言語かな?

これからLazarusを使ってみたいけど、何から始めたらいいのかな?

LazarusのIDEって、どのように使うのかな?

 

こうした方々の疑問に、ストレートにお答えする内容となっています。

 

他の言語を既に習得なされている方も、

本書により、使える言語を1つ増やしてみてはいかがでしょうか?

また初めての方はLazarusからプログラミングを始めると

私のように他の言語を包み込むように理解できます。

理由はプログラム言語の記述が厳格であるためです。

厳しい環境から、ゆるい環境には一般的に苦労なく移れるものです。

 

Lazarusはコンパイル型の言語であり、

Pytohnのようなインタープリター型言語とは違います。

最終成果として、Windowsの実行ファイルを作ります。

 

Lazarusって何?という方、

本書をあなたのスキルアップに使ってみてはいかがでしょうか?

 

『MoonWolfと学ぶ PASCAL文法 超入門編』

Lazarus IDEを使った直観的なプログラム開発 

著MoonWolf / 2024.10  Amazonより


Kindle版:https://www.amazon.co.jp/dp/B0DBQNJFMM

ペーパーバッグ版:https://www.amazon.co.jp/dp/B0DK5WHYQF

 

 

目次の紹介:

 

第1章 なぜ今、PascalとLazarusに注目が集まるのか
第2章 他の言語と比較したPascal文法の特徴
第3章 Pascalを学ぶためのLazarusの準備
  Lazarusで新規プロジェクトの立ち上げ方法
第4章 Lazarusを使ったPascal文法(初級編)
  Pascalの変数定義
  Pascal変数の禁止事項
  Lazarusでの文法学習の環境を整える
  LazarusでのHello World! 
  ここまでのLazarusのまとめ1
   コラム:LazarusはOOPのフル知識がなくても使える
  変数の定義、計算結果などのMemo1への表示
   コラム:コードに全角スペースが入った場合のエラー
  Pascalの算術演算子・比較演算子
  Pascalの論理演算子
   コラム:Memo1の文字サイズを調整する方法
  ここまでのLazarusのまとめ2
   コラム:MoonWolf Lazarus OOP概略を語る1
第5章 Lazarusを使ったPascal文法(中級編)
  Pascalの配列
  Pascalの1次元配列
  Pascalの2次元配列
  Lazarus Record型データの使い方
   コラム:Lazarusのデータのスコープ
  Pascalの条件判定文
   コラム:Pascalの列挙型データ
   コラム Pascalの定数
  Pascalの条件判定 Case文
  Pascalの繰り返し処理
  PascalのFor構文(Lv.1)
  PascalのFor構文(Lv.2)
  PascalのFor構文(Lv.10)
  PascalのWhile構文
第6章 Lazarusを使ったPascal文法(上級編)
  PascalのProcedureとFunction
  Lazarusでの手作りProcedure
  Pascalの関数Function
   コラム:MoonWolf Lazarus OOP概略を語る2
  Pascalのファイル操作
あとがき(MoonWolf&ChatGPT4)
◆◆◆ご協力者の皆様◆◆◆
参考文献


※本書に紹介されたすべてのソースコードはGitHubより参照可能です。

 

これで、あなたも、今日からPascal スター

 

MoonWolf(むーんうるふ)です。

 

子供の頃からプログラムの世界に慣れ、憧れ、親しんできた者です。

大学生の時、Turbo Pascalを履修科目として学習し、

昔のWindowsで、ボーランドDelphiのユーザーをやっていました。

 

2024年よりChatGPTの力を借りて、Delphi/Lazarus以外の

プログラム言語にもチャレンジしてきました。

 

Python、JavaScript、なでしこ3、Unity C#、JAVAなどです。

 

 

面白いことに、DelphiやLazarusの経験者は、

他のプログラム言語でも、包み込むようにして理解ができるのです。

 

なぜか?

 

DelphiとLazarusで使うPascalというプログラム言語が、

記述ルールに厳しいこと。

プログラムの開発環境が充実していること。

視覚的に直観的にプログラムが作成できること。

これらがあります。他の言語ではこれらない場合が多いです。

 

Lazarus+SQL DB(sqlite3)を使った開発画面の例:

 

プログラム開発環境のLazarusのすごいところは、

[2] 検索をしなくても、タブで整理されたコンポーネント一覧

[3] プロパティとイベントをコントロールできるオブジェクトインスペクター

[4] 視覚的にマウスで位置や大きさを調整できるフォームデザイナー

 

結局のところ、私は他の言語の新しさ、面白さ、

これらを十分に味わいながらも、

Lazarusの良さを改めて感じることになるのでした。

海外に行って初めて日本の良さが実感できるようなものです。

 

そこで私は、Lazarus関係にた3冊の書籍を書きたいと考え執筆中です。

今までの書籍には無い論点で執筆します。

 

1年前のMoonWolfと、

その後、複数のプログラム言語に接してきたMoonWolfは、

もはや別人のような視点を得ているからです。

 

1冊目:MoonWolfと学ぶ Pascal文法 超入門

 

実践的なLazarusの文法のかなめの部分を、分かりやすくお伝えしたいです。

この書籍に備え英語版でDelphiの分かりやすい書籍を読んでみて

どのような説明が、初心者に分かりやすいのか、しばらく研究していました。

 

Lazarusを使うためにはOOPの深い知識が必要なのでは?

※OOP:Object Oriented Programming

オブジェクト指向プログラミングです。

この質問に対して、正面からこの書籍で答えたいです。No!です。

 

もともとLazarusには、他のUnitと連携する技術があります。

Interface部、Inplementation部という概念があり、

複数のUnitを通して開発が進められるのです。

 

もともとあるこの機能がOOPの概念と被っているのです。

つまりOOPの知識なくして、

他のUnitを使いながら、十分にOOPのような動作を実現できます。

 

OOPでクラスを作成できる程の、OOPの知識がなくても

プログラミングができるプログラム環境。それがLazarusです。

 

OOPで自作クラスを作りたい人は、その基礎を学習したあと

ゆっくり学習して身につけたらよいのです。

※この見解は、ChatGPT4と意見が一致しています。

 

 

2冊目:MoonWolfと学ぶ Lazarus とSQL DB開発の事例

 

Lazarus+SQL DB(SQLite3)を使ったDBソフト開発の基礎

これを分かりやすく1冊にまとめたいです。

この書籍に備え、世界中から情報を集めLazarus+SQL DBを研究しています。

私は英語の書籍が読めます。英語のフォーラムを英語のまま読めます。

じつに世界で多くの人が、同じような問題に接しています。

それをスッキリ解決してみせたいです。

 

Lazarus+SQL DBのソフトが開発できると、

一気にビジネスアプリの開発に足を踏み入れることになります。

「ゲームの作成を通してプログラム力を上げましょう」

というスタンスの今までの私の書籍に対して、

「ビジネスアプリを開発してみましょう」

という実践的な立場に立つ書籍になります。

 

 

3冊目:2冊目の書籍の海外向け英語版書籍

 

(案) Lazarus + SQL DB 

          DataBase application development with SQLite

 

※英語書籍は世界中への販売になります。

 

他のプログラム言語を見てきて、実際にコードを書いて体験して

Delphi / Lazarusに近いものを上げるとすると、

それは、Unity C#くらいしかありませんでした。

フォームデザイナーとインスペクターがありました。

Unityで2Dのシューティングゲームをひとつ作りましたが、

Unityはもともと、2Dや3Dのゲームや動画作成の開発環境であり、

ビジネスソフトを作るものではありません。

 

JAVAも重厚なプログラム言語ですが、JAVAを動かすための

JREという、そもそもJAVAが動くための環境のインストールが必要です。

フォームデザイナーはあるものの、オブジェクトインスペクターが

Lazarusほど至れり尽くせりではありません。

 

マイクロソフトのVisual Studioも多言語をサポートして

重厚なプログラム環境ですが、フォームデザイナーはあります。

ただ、インストールに一晩かかることもあり、

インストールの結果30GBも必要な点は、どうしたものかと思います。

天下のマイクロソフト様以外に、こんなことが許さるものはないかもしれません。

立ち上げるたびに最新版にするために時間がかかります。

 

これは、あくまでも個人的な見解ですが、

「自分用のWindowsアプリの作成で、JAVAや、Visual Studioを使うかい?」

と、自分に聞いたら、Noです。

もっと軽い環境で簡単に、しっかりしたソフトが

Lazarusで出来てしまうからです。

 

MoonWolfは欧米人と長く仕事をしていたので、

Yes/Noがはっきりしています。

 

Python、JavaScript、なでしこ3には、

そもそも、フォームエディターもオブジェクトインスペクターもありません。

それぞれのプログラム言語の良さは認めますが、

Lazarusの開発環境と比較すると、

申しわけないことに、比較の対象になりません。

 

<補足>

※Pythonの良さ:世界中で研究が進んでいるのでライブラリーが充実で良き。

※なでしこ3の良さ:日本語の開発環境で初心者に親しみやすいくて良き。

 

私が生涯かけてやりたいことは、

日本人のプログラム力の底力を上げるサポートです。

プログラム教育が日本より進歩している海外に負けたくありません。

 

世界では、主に大学生を対象にLazarusが教育用の言語として

実際に使われています。その事例を上げてみます。

 

プログラム言語 Lazarus が海外で使われている事例:2024年時点

 

ポルト大学 (University of Porto): ポルトガル 

ストラスブール大学 (University of Strasbourg): フランス 

ピサ大学 (University of Pisa): イタリア 

カールスタード大学 (Karlstad University): スウェーデン

 

根拠:

 

 

 

Pascalはもともと教育用のプログラム言語なのです。

Lazarusはオープンソースで完全に無料なので教育と相性が良いのです。

教育用とは言えWindowsで動作するプログラムは、ほぼ何でも開発できます。

 

LazarusとDelphiと競合しません。

DelphiとLazarusはお互いに切磋琢磨する関係です。

また相互に移行できるように配慮がなされています。

Lazarus to Delphi, Delphi to Lazarusのように。

 

2024年現在、日本のプログラム教育に

海外のようにLazarusの選択肢がないのが残念です。

Lazarusの本当の価値が分かった時、国はPythonに加え、

Lazarusも教育用の言語として取り入れることになるでしょう。

 

私はいつブレークするかは、全然考えずに、

ただ、正直に私のアウトプットを書籍として記録しておきます。

 

私は書籍を執筆する際に、表紙から作成するタイプの人です。

以下の画像は、書籍の表紙の原案です。

書籍の表紙を時々眺めながら、その表紙に沿うように

内容を固めているのです。

 

原案の表紙:

 

 

将来のLazarusユーザーの皆様が、喜んでいただける姿を想像して

一冊一冊、丁寧に、書いていきたいと思います。

気持ちだけでも、ご期待くださいスター

 

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

 

将来IT系に進みたい人、プログラム開発系の進みたい人

それでいて、データベースって何?

という人は、次の書籍を読んでスキルアップしてみてください。

 

個人レベルではエクセル管理で十分ですが、

一歩、プログラムの世界に足を踏み入れるとはDBのスキルは必須です。

 

自分で言うのも何ですが、ここまで、段階的にやさしくDBの世界を

説明できている本はあまり見かけません。

DBに関してAmazonでKindleUnlimitedで読めるものは、

ほとんど目を通しています。日本語と英語の両方の文献です。

 

重要な論点を130ページくらいに、スッキリまとめてあります。

完全無料ですぐに使えるSqlite3を使ったDB操作を、

私のお勧めするペースで学習してみると効果的です。

 

ここで得られる知識と経験は、必ずあなたを有利にしてくれます。

※書籍に出てくるSQLクエリ―はGitHubに掲載してあります。

 

『MoonWolfと学ぶ SQL DB 第1巻 超入門編: sqlite3使ってみたよ』

 

 

MoonWolf(むーんうるふ)です。

 

全くの初心者に、Lazarus(ラザラス)説明しますよー

 

日本では、プログラム言語PASCALの認知度が低いと感じます。

Free Pascal, Delphi(デルファイ), Lazarus、

内容は他の言語に、これぽっちも劣っていないのにね!

 

Python、C#、JAVA、JavaScript、これらの言語などが人気がありますね。

他にも、なでしこ、Visual Basic、Swift、Rustなどたくさんあります。

 

Lazarus Version3をインストールした方に

簡単な動作テストを公開しておきます。

 

※私のLazarusはVersion 3.0 です。

※本記事のテストは基本的なもので、

どのVersionのLazarusでも問題なく動きます。

 

本当に簡単で、難しくないものを披露したいですね!

 

 

  1、Lazarus新規プロジェクトの準備

 

 

まず、Lazarusを起動!アイコンをダブルクリック!

 

そうすると、前に開発していたプロジェクトを表示するので、

ここでは新しい、プロジェクトを作成して新規に作る方法からお見せします。

これをしないと、他のプロジェクトを意図せず上書きしてしまいます。

 

これは、前に作っていた何かのプログラム。

これをいじると、このプロジェクトが上書きされてしまいます。

 

はい、今から、新しいプロジェクト(プログラム)を

作成する準備をしますよー

 

メインメニュ ->ファイル ->新規

 

 

プログラム ->アプリケーション

 

たくさん表示していますが、初心者のうちは、この一択でよいです。

 

はい、このように、小さいForm1だけを表示する

新しいプロジェクトが立ちあがりました。

 

これを、何か操作するまえに、明示的に自分の準備したフォルダーに

プロジェクトファイルと、Unit1のファイルを保存しておきます。

 

※プロジェクトを保存するフォルダーを事前に作成しておいてください。

たとえば、C:\LazarusAPPs\001_test などです。

 

ファイル ー>名前をつけて保存

 

私の場合、Lazarusであきれる程、

たくさんプログラムを作成していますので、今回の保存先を以下としました。

 

C:\LAZARUS_APP\test36_v3-DEMO001

 

二つのファイルを保存します。project ファイル、Unit1ファイル。

ファイル名を変えずに、

そのまま、あなたの指定フォルダーに保存してください。

 

プロジェクト名を:Project1 のまま保存

 

ユニット名を:unit1 のまま保存

 

はい、これで、新しいプロジェクトにて、

自由、気ままにテストをしたり、遊んだりする環境が整いました!

 

 

私のこの画面をよく見てください。

・上にメインメニューとコンポーネントメニュー

・左にオブジェクトインスペクター

・画面中央近くにフォームデザイナー

・画面右にコードエディター

・画面右したにメッセージウィンドウ

 

あなたの画面でもこれらが表示されていることを確認してください。

標示されていないものがある場合、

 

メインメニュー ->表示 ー>表示したいものを選択

 

この操作をして、表示させて、同じような位置に表示させてください。

 

まとめ:

 

◆Lazarusアイコンをクリックして起動

◆起動すると、以前に開発していた続きが表示される

◆そこをいじると、前の開発プログラムが上書きされ壊れる。

※これは初心者にありがちな、手痛いミス

 

解決方法:

◆新規プロジェクトを立ち上げる

◆事前に新規プロジェクトの保存先のフォルダーを準備しておく

◆ファイルー>新規ー>プログラムー>アプリケーションを選択

◆ファイル名は変更しないで、デフォルト名のproject1 , unit1 で保存

 

 

  2、Lazarus ハローワールド

 

あなたは、Lazarusの新規プロジェクトの作成に成功しました。

自分のプロジェクトファイルがどこに保存されているのか

明確に理解している状態です。

 

Lazarusが他の開発環境に対して、優れている点として、

・フォームデザイナーがある

・オブジェクトインスペクターがある

 

少なくとも、この2点は上げられます。

画面を見ながら、フォームのデザイン、

コンポーネントの詳細を調整しながらプログラムが組めます。

 

例えば、Python、JavaScript、なでしこ3、

他にも多くのプログラム言語がありますが、このようなものはないです。

 

それでは、フォーム(Form1)に、ボタン(Button1)とメモ(Memo1)をのせて、

Button1を押したら、Memo1に、

「こんにちは、皆さん!」と、表示するプログラムを作成してみます。

 

プログラムを最初に作るとき、昔からの習わしで、

Hello World!

と、表示する習慣になっていたりします。はるか昔C言語の書籍で

そのように記述され、それが世界レベルで伝統として残っているようです。

 

マウスで大きさを操作して、Form1、コードエディター、メッセージウィンドウを

だいたい、これくらいの大きさになるように調整してください。

 

操作になれるまでは、私の指示にできるだけ従ってください。

慣れれば、あなたのやりたいように自由に設定してかまいません。

 

Form1にButton1とMemo1をのせます。

 

開発画面のメニューの下をご覧ください。

ピンク色で囲まれた部分が、コンポーネント・ウィンドウです。

 

Lazarusで使うことができるコンポーネントが、タブに整理されて

ぎっちりと並んでいます。

 

 

今回は、コンポーネントのたくさんあるタブの中から、

Standard、このタブの内部にある、コンポーネントを使います。

コンポーネントには名前は書いてありませんが、

マウスのコンポーネントの上に持っていくと、名前が表示されます。

 

 

今回、使うのはこのふたつ。TButtn, TMemo

 

TButtonをマウスでクリックした状態、選択した状態で、

Form1をクリックしてください。

そうすると、このようにForm1にButton1が設置されます。

位置や大きさはマウスで自由に変更できます。

 

 

同様に、TMemoを選択した状態で、

Form1をクリックしてください。このようにMemo1が設置されます。

 

 

マウスの操作で以下のように大きさを整えてください。

 

 

さて、見た目の表示具合の準備はできました。

一度ここで、プログラムを実行して、テストをしてみましょう。

 

 

画面上のメニューバーに、緑の三角マークがあります。

このボタンを押すと、プログラムが実行されます。

 

ボタンを押さないで実行する場合:

メインメニュー -> 実行 ->実行

 

すると、新規プロジェクトの1回目の実行の時だけ、

このような不思議なポップアップ画面が出てできます。

結論からいうと、初心者の皆様、私も含めてどれを選んでも関係ありません。

デフォルトの「Enable Dwarf3(-gw3)」で良いです。

Lazarusの開発者の間で、

プログラムのデバックに関して意見が分かれているとのこと。

 

実行の結果:

 

ほら!このように、ツルンとしたフォームが表示されましたね!

 

 

プログラムの本文は何もまだ、作成していないものの、

フォームにButton1とMemo1を設置するというプログラムは

作成されていたのです。

 

何も起きませんが、Memo1に文字を記入したり、

Button1を押してみてください。

 

Memo1の部分には、メモ帳のように文字を書くことができます。

保存する機能はまだ、装備していません。

実行を停止すると全部消えてしまいますが。

 

今度は、プログラムの実行を停止してみます。

メニュー上部の、赤四角ボタンを押すと実行が停止されます。

 

メニューから実行を停止したい場合:

メインメニュー -> 実行 ー>停止

 

 

はい。これでプログラムの実行は停止されて、

再び、プログラム開発モードに戻ってきました。

 

さて、いよいよButton1を押したら、

「みなさん、こんにちは!」と表示するプログラムを組んでいきます。

 

ここもまた、Lazarus特有の直観的なプログラムができる部分になります。

Button1をダブルクリックしてください。

 

 

そうすると、自動で、Button1を押したときに起動する関数が作成されました。

画面のピンクで囲んだ部分です。

ここに、Button1を押した時に何をするのかを、記述したら良いのです。

 

※ちなみに、コードエディターの文字を少し大きくしまいた。

コントロールキーを押しながらマウスのホイールで文字の大きさを大きくできます。

 

 

さて、プログラムを追加します。

 

以下の太字の部分だけ追加してみました。内容は、

Memo1に、Append(追加記入)です。

 

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Append('みなさん、こんにちは!');
end;   

 

 

注意:’みなさん、こんちには!’ 以外の部分は全て半角文字です。

プログラム本文に全角文字を一文字でも入れたらエラーです。

 

いよいよ実行してみます。

 

 

実行して、Button1を押すと、「みなさん、こんにちは!」と表示されました。

 

 

まとめ:Lazarus でのHello World

 

◆Form1にButton1とMemo1を設置

◆Button1とMemo1の大きさを調整

◆Button1をダブルクリック

◆自動生成されたButton1Click関数内に

Memo1.append('こんにちは、みなさん!');

と、記入。

◆実行をして動作チェック

 

注意:

◆日本語の全角が使えるのは、主に以下二つ

1、//  コメント

2、'文字列データ'  シングルクオーテーション内の文字

これ以外に、全角スペースも含めて全角文字が入ると

エラーで動かないです。全角文字、特に初心者は気をつけてください。

 

これが、プログラム第一歩の人が世界でやっている

Hello World!です。

ボタンを2回、3回と押してみると、何回でも表示ます。

プログラミングの第一歩とは、このようなものです。

 

これらの操作が、熟練してくると、ゲームができたり、

実用アプリができたり、自分の欲しいプログラムができるようになってきます。

 

必要なことは、

・Lazarusの開発環境になれること。このHello Worldを

 この記事を見ないで、自分でできるように3回練習してください。

・私の書いているようなLazarusの初心者向け書籍を参考に、

 まず、Lazarusで何ができるのか知ること。

 どのようにプログラムを組んでいくのかを知ること。

・簡単なものから始めて自分でたくさんプログラムを作成すること

・そして、Pascalの文法を覚えていくこと

・エラーに遭遇した際にはChatGPTなどに、アドバイスを求めること

・何回エラーに遭遇してもくじけないこと

 

以上、Lazarusでの、MoonWolf流 Hello Worldを公開してみました。

 

 

 

参考文献:MoonWolfのLazarus入門書籍