コラム / テキストエディタ / 4


コラム/テキストエディタ


フォームへのコンポーネントの追加

フォームにコンポーネントを追加する前に,アプリケーションのユーザーインターフェース(UI)を作成するための最適な方法について考える必要があります。UI はアプリケーションユーザーがアプリケーションと対話するのを可能にするものなので,使いやすさを考慮して設計しなければなりません。

te1.png

Delphi には,アプリケーションの部品を表す多くのコンポーネントが用意されています。たとえば,メニュー,ツールバー,ダイアログボックス,その他の数多くのビジュアル(および非ビジュアル)プログラム要素のプログラミングを容易にするコンポーネント(オブジェクトとも呼ばれます)がコンポーネントパレットにあります。

テキストエディタアプリケーションには,編集領域,編集中のファイルの名前などを表示するステータスバー,メニュー,あるいはコマンドへ簡単にアクセスできるようにするためのボタンを配置したツールバーなどが必要になります。Delphi を使用してインターフェースを設計する場合,いろいろなコンポーネントを試してその結果をすぐに見ることができるという利点があります。したがって,アプリケーションのインターフェースのプロトタイプをすばやく作成することができます。

テキストエディタを設計するうえでの最初の作業として,RichEdit? コンポーネントと StatusBar? コンポーネントをフォームに追加します。

1

te2.png

テキスト領域を作成するために,まず RichEdit? コンポーネントを追加します。RichEdit? コンポーネントを見つけるには,コンポーネントパレットの[Win32]ページのアイコンをマウスでポイントします。少し待つと,Delphi はヘルプヒントとしてコンポーネントの名前を表示します。

RichEdit? コンポーネントが見つかったら,次のどちらかの操作をします。

  • パレットでそのコンポーネントを選択し,フォーム上の配置する位置をクリックします。
  • パレットでそのコンポーネントをダブルクリックして,フォームの中央に配置します。

Delphi のコンポーネントはそれぞれがクラスであり,フォーム上にコンポーネントを配置するとそのクラスのインスタンスが作成されます。フォームにコンポーネントを配置すると,Delphi は,アプリケーションを実行したときにそのオブジェクトのインスタンスを構築するために必要なコードを作成します。

2

te3.png

RichEdit? コンポーネントを選択した状態で,オブジェクトインスペクタで Align プロパティのドロップダウン矢印をクリックして,alClient を設定します。 RichEdit? コンポーネントがフォーム全体に拡がって,大きなテキスト編集領域が確保されます。Align プロパティに alClient 値を設定すると,フォームのサイズを変更しても RichEdit? コントロールのサイズがウィンドウのサイズに合わせて変化します。

3

te4.png

コンポーネントパレットの[Win32]ページにある StatusBar? コンポーネントをダブルクリックします。これで,ステータスバーがフォームの一番下に追加されます。

4

テキストエディタで編集中のファイルのパスと名前を表示する場所をステータスバーに作成します。

  • ステータスバーを選択します。
    te5.png
  • SimplePanel? プロパティを True に設定します。
    te6.png
  • SimpleText? プロパティを untitled.txt に変更します。このテキストエディタを使うときに,編集中のファイルがまだ保存されていない場合,その名前は untitled.txt になります。
    te7.png
  • Panel プロパティの[(TStatusPanel?)]省略記号をクリックして,[StatusBar1.Panels の編集]ダイアログボックスを表示します。
    te8.png
  • ダイアログのツールバーにある[新規追加]ボタンをクリックして,ステータスバーにパネル#ref(te9.png) を追加します。

ヒント [StatusBar1.Panels の編集]ダイアログボックスは,フォーム上のステータスバーをダブルクリックして表示することもできます。


5

[×]をクリックして,[StatusBar1.Panels の編集]ダイアログボックスを閉じます。

te10.png

以上で,テキストエディタのユーザーインターフェースのメイン編集領域の設定は終わりです。

コラム/テキストエディタ