VCL フォームアプリケーションのコントロールへのビットマップイメージを配置する
グラフィックを使用する VCL フォーム アプリケーションの作成方法 への移動
この手順では,VCL フォームアプリケーションのコンボボックスにビットマップイメージを追加します。
- VCL フォームを作成する。
- フォームにコンポーネントを配置する。
- オブジェクトインスペクタでコンポーネントのプロパティを設定する。
- コンポーネントの描画動作のためのイベントハンドラを記述する。
- アプリケーションをビルドして実行する。
TComboBox コンポーネントがある VCL フォームを作成する
- [ファイル > 新規作成 > その他]の[Delphi プロジェクト > ]または[C++Builder プロジェクト]を選択し,[VCL フォームアプリケーション]アイコンをダブルクリックします。VCL フォームデザイナが表示されます。
- ツールパレットの[Win32]ページから,TImageList コンポーネントをフォームに配置します。
- ツールパレットの[Standard]ページから,TComboBox をフォームに配置します。
コンポーネントのプロパティを設定する
- フォーム上の ComboBox1 を選択します。
- オブジェクトインスペクタで,Style プロパティドロップダウンを csOwnerDrawFixed に設定します。
- オブジェクトインスペクタで,Items プロパティの隣にある省略記号をクリックします。文字列リストの設定エディタが表示されます。
- ビットマップイメージに関連付ける文字列を入力します。たとえば,「MyImage」と入力し,[OK]をクリックします。
- フォーム上の ImageList1 をダブルクリックします。イメージリストエディタが表示されます。
- [追加]ボタンをクリックして,[イメージの追加]ダイアログを表示します。
- コンボボックスに表示するビットマップイメージを探します。イメージを探すには,ローカルドライブで *.bmp で検索します。アイコンなどの小さなイメージを選択します。イメージをプロジェクトディレクトリにコピーし,[開く]をクリックします。イメージリストエディタにイメージが表示されます。
- [OK]をクリックしてエディタを閉じます。
イベントハンドラコードを追加する
- VCL フォームビューで,[ComboBox1]を選択します。
- オブジェクトインスペクタで,[イベント]ページをクリックし,OnDrawItem イベントをダブルクリックします。コードエディタが表示されます。カーソルは,ComboBox1DrawItem(Delphi)または ComboBox1::DrawItem(C++)イベントハンドラのコードブロック内に置かれます。
- イベントハンドラとして次のコードを入力します。
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] );
プログラムを実行する
- [実行 > 実行]を選択します。アプリケーションが実行され,フォームにコンボボックスが表示されます。
- コンボボックスのドロップダウンをクリックします。リスト項目としてビットマップイメージと文字列が表示されます。