Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2014年07月26日] [更新 2014年07月26日] Delphi 一般・その他
ワードやエクセルのようなアプリケーションの開発
動作確認等 -
[整理番号 - 0940]







Windows 用アプリケーション開発言語としての Delphi


Delphi XE2 では Mac、モバイル向けのクロス開発が可能になりましたが、Delphi XE まではWindows 用のアプリケーション開発専用のプログラム言語でした。

Windows で動作するアプリケーションは、マイクロソフトが提供している機能を使用して開発します。マイクロソフトが提供している機能は一般的に Windows API と呼ばれています。ワードやエクセルも Windows API を使用して開発されています。

「Delphi でワードやエクセルのようなアプリができますか」という質問を頂くことがあります。本ページの記事は、それらの質問に対する回答用として作成しました。
Windows API が使用可能なプログラム言語であれば、基本的には、Windows で動作するアプリケーションが開発できます。これは、質問された方ができるかどうかとは別の問題です。したがって、筆者には明確な回答はできません。



[備考]
「ワードやエクセルのようなアプリを作ることができますか」と言う質問には多くの場合、主語がありません。主語がないのは日本語の特徴です。もし、質問された方が主語であれば。筆者にはどう考えても判断できません。主語が筆者 (You) だとすれば、それは大きなお世話です。





01_ワードやエクセルのようなアプリケーションの開発


ワードやエクセルは、テキストだけでなく、画像や図形も扱えます。非常に多くの機能を実装しています。それだけの機能を実装するのは容易ではないことは、それこそ容易に予想できます。

どう考えても、ワードやエクセルにどんな機能があるのか知らなければなりません。その 1 つ 1 つの機能を解析して実現していくしかありません。テキストの編集があります。編集といっても、文字列の置換、挿入等、様々な機能、動作があります。
そのためには、Delphi にどのようなコンポーネントがあり、どのような機能があるのかを把握する必要もあります。また、Windows (マイクロソフトと言い換えていもいいかも知れません) がどのような関数やインターフェイスを開発者に対して提供しているかも知る必要があります。

「時は金なり」と言いますから、知識の習得、蓄積と経験を補い、開発にかかる手間を考えると、サードパーティ製のコンポーネント類に対する投資も考える必要があるかも知れません。



[備考 1]
ComponentSource に掲載のコンポーネント類の全てが Delphi で使用可能とは限りません。


[備考 2]
TActionList 等を使用すると、Windows 付属のアクセサリである「ワードバッド」のような機能のアプリを、コードをほとんど書かずに作成することも可能です。





02_ワードやエクセルのようなリボンコントロール


「ワードやエクセルのようなアプリを作るにはどうしたらいいですか」という質問の中に、下図のような操作用コントロールのことを意味するものがありました。
これは「リボンコントロール」と言います。Delphi 2007 で、このリボンコントロールを実装するためのコンポーネントが追加されています。2 番目の図は、その簡単な実装例です。



[備考]
リボンコントロールは、Delphi 10.1 Berlin では標準ではインストールされなくなりました。



図1
リボンコントロール
図2
リボンコントロールの簡単な実装例

リボンコントロールを使用したアプリケーションの配布には、マイクロソフトのライセンスの取得が必要です。
下図は、Delphi XE をインストールする際、リボンコントロールを含めてインストールする設定にした場合に現れる警告ダイアログです。


図3
ライセンスが必要




03_CAD のようなアプリケーションの開発


CAD (computer aided design)は Draw 系(ドロー系) のアプリケーションです。
Draw 系のソフトを操作したことがあれば分かるように、多くの図形の部品を使用しています。それらの図形の移動、リサイズもできます。
Delphi のコミュニティの場での質問を読むと、画像や図形の移動リサイズだけでも苦労している方がいるぐらいですから、CAD のようなアプリケーションを開発するのは容易でないことは、それこそ容易に想像できます。これも、どのような機能が必要なのかを調べて、その 1 つ 1 つの機能を実現していくしかないでしょう。



[備考 1]
ImageKit は、バージョンアップすると、古いバージョンのページにアクセスできなくなることがあります。その場合は、以下の株式会社 ニュートンのリンクからアクセスしてください。


[備考 2]
ComponentSource に掲載のコンポーネント類の全てが Delphi で使用可能とは限りません。