特集

.NET完全対応で生まれ変わったDelphi 8

泉 祐介
2004/06/26

Page1 Page2 Page3 Page4

開発可能なアプリケーション

 Delphi 8では、Windowsアプリケーションを開発する際に利用できるコンポーネント・ライブラリが2種類存在することになる。1つはDelphi標準のVCL、もう1つは.NET Framework標準のWindowsフォームである。

 このため、新規プロジェクトの項目には[VCLフォームアプリケーション]と[Windowsフォームアプリケーション]の2項目が用意されている。ユーザーは、新しいプロジェクトを作成するときに、利用するコンポーネント・ライブラリも選択する必要がある。

プロジェクトの新規作成(VCLフォームとWindowsフォーム)
メニューから[ファイル]−[新規作成]−[その他]を選択すると、図のようなプロジェクトの種類を選択するためのウィンドウが表示される。新規プロジェクトの項目として[VCLフォームアプリケーション]と[Windowsフォームアプリケーション]があり、Windowsアプリケーションを開発する際には最初にどちらかのコンポーネント・ライブラリを選択しなければならない。

 なお、VCLフォームとWindowsフォームのどちらを選択しても、ビルドされたアプリケーションは.NET Framework上で動作する。ただし、設計上の違いなどから、両者のコンポーネントを1つのアプリケーションで同時に使用することはできない*。プロジェクト作成時にコンポーネント・ライブラリを選択するのはこのためである。

* Delphi 8に同梱されている「WinFormsコントロール・インポート・ウィザード」というツールを利用すれば、WindowsフォームのコンポーネントをVCLのコンポーネントに変換することが可能。また、TList(VCL)やArrayList(.NET Framework)のようにGUIと関係のないクラスは、どちらのコンポーネント・ライブラリを選択していても利用可能なようだ。

 このほか、Delphi 8ではASP.NETを利用したWebアプリケーション、XML Webサービスなどの開発も可能となっている(下図)。

プロジェクトの新規作成(ASP.NET WebアプリケーションとASP.NET Webサービス)
Delphi 8ではASP.NETを利用したWebアプリケーション、XML Webサービスなどの開発も可能。

 上の画面にあるDelphi 8におけるプロジェクトの種類を次の一覧表にまとめた。

プロジェクトの分類 プロジェクト項目
Delphi for .NETプロジェクト ・ECO Windowsフォーム・アプリケーション(Architect版のみ)
・VCLフォーム・アプリケーション
・Windowsフォーム・アプリケーション
・WinFormコントロール・パッケージ
・コンソール・アプリケーション
・パッケージ
・ライブラリ
Delphi ASPプロジェクト ・ASP.NET Webアプリケーション
・ASP.NET Webサービス・アプリケーション
・Webコントロール・ライブラリ
Delphi 8でのプロジェクトの種類

 なお、Delphi 8はあくまでも.NET Frameworkをベースにしたアプリケーション(以下.NETアプリケーション)のみが開発できる。言い換えれば、いわゆるWin32アプリケーションはビルドできない。ただし、製品パッケージにはWin32アプリケーション開発用としてDelphi 7も同梱されている。したがって、Win32アプリケーションの開発にはそれを利用することになる。

 次に、実際にDelphi 8を使ったアプリケーション開発を紹介しよう。これまでDelphiは主としてWindowsアプリケーションの開発に利用されてきたことを踏まえ、本稿ではWindowsアプリケーションの開発を取り上げる。

VCLフォーム・アプリケーションの開発

 前述したとおり、Windowsアプリケーションを開発する際にはコンポーネント・ライブラリを選択する必要がある。まずはDelphiの特徴であるVCLフォームを利用した場合から紹介する。

 メニューから[ファイル]−[新規作成]−[VCLフォームアプリケーション]の順に選択すると、新しいフォームを設計するための画面が表示される(下図)。

VCLフォーム・デザイナ
メニューから[ファイル]−[新規作成]−[VCLフォームアプリケーション]の順に選択すると、VCLフォーム・デザイナ画面が表示される。

 Delphi 8ではIDE全体のユーザー・インターフェイスが変更されているため、それに合わせてフォーム・デザイナの操作性もいくらか変化している。

 例えば、これまでフォームはそれ自体がウィンドウとして表示されていたが、Delphi 8では画面中央のウィンドウの内部に表示されるようになった。ツール・パレットの表示位置が変わったのは前述したとおりだが、それだけでなく表示形式も変化している。ただし、「Standard」や「Additional」といったコンポーネントの分類方法は変化していないので、Delphiに慣れたユーザーならば目的のコンポーネントを探し出すのはたやすいだろう。

 このほか、デザイナとコード・エディタの切り替えはウィンドウの下側にあるタブで行うようになった。

 下の画面は、画像ファイルを表示するプログラムを作成しているところだ。画面中央に表示されているウィンドウは、Delphiユーザーならばおなじみのメニュー・デザイナ(メニューに表示する項目を編集する専用のウィンドウ)である。

画像表示プログラム(VCLフォーム版)のフォーム・デザイン
画像ファイルを表示するプログラムを作成しているところ。

 このフォームに対応するユニット・ファイル*の内容は次のとおりである。実際に筆者が記述したコードは番号の付いている個所だけで、あとはDelphiによって自動生成されたコードだ。なお、参考までにDelphiフォーム・ファイル(フォームや各コンポーネントのプロパティの値を保存するファイル)もダウンロードできるようにしておく。

* PascalやDelphi言語ではモジュールのことをユニットと呼ぶ。
 
unit ImageVCL;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.Menus, System.ComponentModel, Borland.Vcl.ExtCtrls;

type
  TfrmMain = class(TForm)
    imgView: TImage;
    mmnuMain: TMainMenu;
    dlgOpen: TOpenDialog;
    mnuFile: TMenuItem;
    mnuOpen: TMenuItem;
    mnuExit: TMenuItem;
    procedure mnuOpenClick(Sender: TObject);
    procedure mnuExitClick(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.nfm}

procedure TfrmMain.mnuOpenClick(Sender: TObject);
begin
 
  if dlgOpen.Execute then
  begin
    imgView.Picture.LoadFromFile(dlgOpen.Filename);
  end

end;

procedure TfrmMain.mnuExitClick(Sender: TObject);
begin
 
  Close;
end;

end.
画像表示プログラム(VCLフォーム版)のユニット・ファイルの内容
上のVCLフォームに対応するユニット・ファイルの内容。実際に筆者が記述したコードは番号の付いている個所だけで、あとはDelphiによって自動生成されたコード。
  [ファイルを開く]ダイアログを表示し、指定されたファイルから画像を読み込んで表示するコード。
  メイン・フォームである自分自身を閉じ、アプリケーションを終了させるコード。

 このアプリケーションをビルドして実際に実行したのが次の画面だ。以前のバージョンのDelphiで作成したWin32アプリケーションと同じように見えるかもしれないが、実際には.NET Framework上で動作している.NETアプリケーションだ。

画像表示プログラム(VCLフォーム版)の実行画面
プログラムをビルドして実行したところ。見た目はWin32アプリケーションと変わらないが、れっきとした.NETアプリケーションだ。

 それでは次に、このVCLフォーム・アプリケーションで使われている「VCL」について解説しよう。


 INDEX
  [特集].NET完全対応で生まれ変わったDelphi 8
     1..NET完全対応のDelphi 8
   2.VCLフォーム・アプリケーションの開発
     3.VCLを.NET環境に移植した「VCL for .NET」
     4.Windowsフォーム・アプリケーションの開発
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間