PR

ソフトウエア開発を支える開発環境の現在

2011年5月19日(木)
藤井 等

コンテナコンポーネント

ここでは、コンポーネントの配置を行います。コンポーネントの大きさは、Left、Top、Width、Heightといったプロパティで決まっていますが、これはコンポーネントを置く場所を提供するコンポーネントによって変わります。この場合は、Formです。

FormやPanelは、「コンテナ」と呼ばれる、その上に別のコンポーネントを配置できる特別なコンポーネントです。コンテナは、コンポーネントの配置の仕方を規定しています。通常はXY座標ですが、順番に並べるように配置するFlowPanelやグリッド状に配置するGridPanelなどもあります。

図6:Grid Panelによるコンポーネントの配置(クリックで拡大)

また、コンテナ上のコンポーネントのAlignプロパティを用いれば、コンテナの上下左右、あるいは全体に位置するように大きさと場所を自動調整することもできます。

コンポーネントは、TObject、TComponentなどを継承して作られており、通常のオブジェクト指向プログラミングと同様、性格の異なるコンポーネントであっても、共通項に対しては、同じプロパティやメソッドを用いて共通の操作が可能です。

コンポーネントの外観、動作を変える

配置したコンポーネントはそのままでも動作します。ボタンは押せばへこみますし、チェックボックスはクリックすればチェックマークが表示されます。しかし、標準とは違う表示にしたり、独自の動作を定義したりしたい場合があるでしょう。

そのような場合には、まずプロパティを確認します。プロパティには、Captionのように値を設定して表示を変更したり、オプションを選択して外観や動作を変更したりするものがあります。

プロパティでは設定できない独自動作を定義するには、イベントを用います。イベントの種類はコンポーネントによって異なりますが、マウスをクリックした(OnClick、OnMouseDown、OnMouseUpなど)とか、キーボードをタイプした(OnKeyPress、OnKeyDown、OnKeyUpなど)といった入力デバイス系のイベントや、ウィンドウの表示関係のイベント(OnShow、OnClose、OnPaint、OnResizeなど)、コンポーネントの生成、破棄に関するもの(OnCreate、OnDestroyなど)があります。

Delphiのプログラミング上達には、これらのプロパティ、イベントをよく知ることがなにより大事です。動作を調べるには、コンポーネントをフォームに配置して、オブジェクトインスペクタでちょっと設定を変えてみるだけで簡単に行えます。

プログラムの全体像をすっきり見通せるようにする

このようにDelphiでは、簡単な操作でプログラムを構成する要素をカスタマイズできます。これは大変便利である一方、少しずつ改良を重ねていくうちに、まとまりのないものになっていったり、複雑化してしまったりする恐れもあります。

Delphiはあくまでもツールです。ツールをどのように使いこなすかは、結局プログラマの腕次第なのです。ツールに振り回されて、見通しの悪いプログラムにならないようにするには、アプリケーション全体の設計をしっかり考えましょう。改良を重ねていくうちにごちゃごちゃしてきたら、思い切って構造を変更してみることも大事です。

例えば、Delphiには、リファクタリングと呼ばれる機能があり、イベントハンドラの中にごちゃごちゃと記述してきたコードをメソッドとして切り出したり、統一性のない変数名を一気に修正したりするような操作ができます。

図7:リファクタリング(クリックで拡大)

Delphiの特長は、最大のコンポーネントです。コンポーネント化のメリットは、ユーザーインターフェースだけではありません。データの扱いについても、コンポーネントによるモジュール化、汎用化を意識すれば、変更に強いアプリケーションを作成できます。アプリケーションで、データは重要な役割を果たしますから、この点については、次回以降じっくり掘り下げてみたいと思います。

エンバカデロ・テクノロジーズ 日本法人代表
千葉大学文学部行動科学科卒業。石油関連会社でGISなどの開発を経験したのち、1995年、ボーランドに入社。マーケティングとしてJava開発ツールJBuilderやVisiBrokerなどミドルウエア製品の立ち上げを行う。2008年7月、ボーランドの開発ツール部門を合併したエンバカデロ・テクノロジーズに移籍。2009年1月より日本法人代表を務める。

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています