VCL フォームアプリケーションのコントロールへのビットマップイメージを配置する

提供: RAD Studio
移動先: 案内検索

グラフィックを使用する VCL フォーム アプリケーションの作成方法 への移動

この手順では,VCL フォームアプリケーションのコンボボックスにビットマップイメージを追加します。

  1. VCL フォームを作成する。
  2. フォームにコンポーネントを配置する。
  3. オブジェクトインスペクタでコンポーネントのプロパティを設定する。
  4. コンポーネントの描画動作のためのイベントハンドラを記述する。
  5. アプリケーションをビルドして実行する。

TComboBox コンポーネントがある VCL フォームを作成する

  1. [ファイル > 新規作成 > その他]の[Delphi プロジェクト > ]または[C++Builder プロジェクト]を選択し,[VCL フォームアプリケーション]アイコンをダブルクリックします。VCL フォームデザイナが表示されます。
  2. ツールパレットの[Win32]ページから,TImageList コンポーネントをフォームに配置します。
  3. ツールパレットの[Standard]ページから,TComboBox をフォームに配置します。

コンポーネントのプロパティを設定する

  1. フォーム上の ComboBox1 を選択します。
  2. オブジェクトインスペクタで,Style プロパティドロップダウンを csOwnerDrawFixed に設定します。
  3. オブジェクトインスペクタで,Items プロパティの隣にある省略記号をクリックします。文字列リストの設定エディタが表示されます。
  4. ビットマップイメージに関連付ける文字列を入力します。たとえば,「MyImage」と入力し,[OK]をクリックします。
  5. フォーム上の ImageList1 をダブルクリックします。イメージリストエディタが表示されます。
  6. 追加]ボタンをクリックして,[イメージの追加]ダイアログを表示します。
  7. コンボボックスに表示するビットマップイメージを探します。イメージを探すには,ローカルドライブで *.bmp で検索します。アイコンなどの小さなイメージを選択します。イメージをプロジェクトディレクトリにコピーし,[開く]をクリックします。イメージリストエディタにイメージが表示されます。
  8. OK]をクリックしてエディタを閉じます。

イベントハンドラコードを追加する

  1. VCL フォームビューで,[ComboBox1]を選択します。
  2. オブジェクトインスペクタで,[イベント]ページをクリックし,OnDrawItem イベントをダブルクリックします。コードエディタが表示されます。カーソルは,ComboBox1DrawItem(Delphi)または ComboBox1::DrawItem(C++)イベントハンドラのコードブロック内に置かれます。
  3. イベントハンドラとして次のコードを入力します。
Combobox1.Canvas.FillRect(Rect);
ImageList1.Draw(ComboBox1.Canvas, Rect.Left, Rect.Top, Index);
Combobox1.Canvas.TextOut(Rect.Left+ImageList1.Width+2,
  Rect.Top, ComboBox1.Items[Index]);
ComboBox1->Canvas->FillRect( Rect );
ImageList1->Draw( ComboBox1->Canvas, Rect.Left, Rect.Top, Index );
ComboBox1->Canvas->TextOut( Rect.Left + ImageList1->Width + 2,
                            Rect.Top,
                            ComboBox1->Items[Index] );

プログラムを実行する

  1. [実行 > 実行]を選択します。アプリケーションが実行され,フォームにコンボボックスが表示されます。
  2. コンボボックスのドロップダウンをクリックします。リスト項目としてビットマップイメージと文字列が表示されます。

関連項目