| |||||||
|
|
|||||||
第12回 日記アプリケーションを作る ―その8 画像読み込み機能の実装さて、ここまでで基本機能が実装がだいぶ進んでようやく日記アプリケーションらしくなってきた。が、まだ入力画面の右上のPictureBoxコントロールがぽっかりと取り残されている。もちろん画像を取り込む機能は必須というわけではないが、せっかくだから今回は画像ファイルの読み込みと保存をする機能を追加していこう。 しくみを考える今回は、入力画面にかかわる画像関連の機能を実装する。では画像を扱うための機能を考えてみよう。 ファイルを読み込むための処理
ファイルを表示するための処理
ということで、今回扱うキーポイントは以下のようになる。
画像ファイルを開くための処理まずは、画像ファイルを開くための機能を実装しよう。はじめは「ファイルを開く」ダイアログの使い方だ。 このダイアログはこれまでいろいろなアプリケーションで見て使ってきただろう。これをアプリケーションに実装するためのコントロールとして、「FileOpenDialog」コントロールが用意されている。 まずは、入力画面(editForm)のデザイン画面を開こう。そうしてツールボックスからOpenFileDialogコントロールをフォームにドラッグ&ドロップする。 すると、フォームにはコントロールは現れずに画面下に「OpenFileDialog1」コントロールが表示される。OpenFileDialogコントロールは呼ばれるまで表示する必要がない「デバイス コンポーネント」なのでこのようになる。 では、続けてこのOpenFileDialogコントロールの設定を「プロパティ」から行なっていこう。
これはわかりやすいだろう。ファイルを開くダイアログを表示した際に、どのファイルを表示するかを指定したファイルのフィルタである。基本的には 続いてファイルを開くダイアログを表示してファイルを読み込む処理を実装しよう。「画像」メニューをダブルクリックして以下のコードを実装しよう。コメント部分は入力しなくてもよい。 Private Sub pictureMenu_Click(ByVal sender As System.Object, … はじめに「ファイルを開くダイアログ」をShowDialog関数で表示する。そしてユーザーが何かファイルを選択して「OK」を押すか「Cancel」を押すかしないと、次の処理には進まない。 この時点で、文字ユーザーがファイルを指定した場合はOpenFileDialogの中に開いたファイルのファイルパスが保存される。 さて、ダイアログを表示して、Cancelされてしまったときには画像読み込みの処理をする必要がないので、ファイルを選択してOKボタンを押したかどうかチェックしている。OKの場合はファイルパスを元に(画像を読み込んで)Bitmapオブジェクトを作成する。そして、できあがった画像をPictureBoxコントロール(contentPicture)に格納するという手順である。 読み込みテストをしてみようでは実際にテストをしてみよう。F5キーで実行したら、メニューから新規作成を選んでみよう。今日の日付の新しい日記が開いたら、右ソフトキーの「画像」メニューを押してみよう。見慣れた「ファイルを開く」ダイアログが開いて、ファイルの種類もプロパティで設定したように「画像ファイル」と「すべてのファイル」の両方が選択できるようになっている。 ここで、適当な画像ファイルを選択してみよう。するとファイルから画像が読み込まれて画面上に表示されることが確認できる。 画像保存処理では今度は、画像を保存する処理を追加しよう。すでに日記を保存する処理は実装されているのでそこに、画像を保存する処理も追加する。 まず、保存するためには保存するファイルのパスを作る必要があるので、ちょっとこれまで実装したファイルを修正してみよう。 はじめに入力画面(editForm)のデザイン画面を表示し、「保存」ボタンをダブルクリックしてコードを表示する。コードは以下のように書き換えよう。 Private Function getFilePath() As String
Dim filename As String
filename = "\My Documents\MyDiary\"
filename = filename + Me.editDate.Value.ToString("yyyy年MM月dd日")
Return filename
End Function
Private Sub saveMenu_Click(ByVal sender As System.Object, …
Dim filepath As String
filepath = Me.getFilePath() + ".txt"
:
getFilePathという関数を設定してみた。実は画像ファイルと日記の本文のテキストファイルは、拡張子以外は共通である(という仕様にした)。そのため、関数を呼び出すとこの共通部分を返してくれる関数を作ってみた。 では、今度のここの関数の下に画像ファイルを保存する処理を追加しよう。 Private Sub saveMenu_Click(ByVal sender As System.Object, … まずは、先ほど作ったfilename変数を利用して画像保存用のファイルパスを作成する。 そして、まずこの日記に画像があるかどうかチェックする。画像は contentPicture.Imageに格納されているはずなので、そこに画像があるかどうかは Is Nothing 関数でチェックする。ただしIfの後にNotがあるので、「もし、Imageがなくは(Is Nothing)なかった( Not )ら?」という判定をしている。 画像があったならば、ImageのSave関数で画像を保存している。このSave関数も大変便利な関数の1つである。1つめの引数は保存するパス、2つの引数は保存する画像の形式を指定してある。Jpeg/gif/png/bitmapが選択可能だ。 画像を読み込む機能では画像を読み込む機能を修正していこう。まずはファイルのパスに関する処理である。 Private Sub editDate_ValueChanged(ByVal sender As System.Object, … 実は、こちらでも共通処理があったので、ファイルのパスを取得するために、さきほどgetFilePath という関数を作ったのである。 では、画像ファイル読み込みのための処理を実行してみよう。 Private Sub editDate_ValueChanged(ByVal sender As System.Object, … さて、今回も関数を作ってみた。今回は値を戻さないで、ただ画像ファイルがあれば表示するだけの処理なので、サブルーチン(Sub)を使っている。 基本的にはファイルがあるかのチェックをして、もしファイルがあれば画像を読み込んで表示し、なければ消去するといったもの。 わざわざこのように関数を使ったのは、画像読み込みのプロセスが先ほど実装した処理と同じだからである。そこで先ほどの画像読み込み機能もこの関数を使うように修正しておこう。 Private Sub pictureMenu_Click(ByVal sender As System.Object, … テスト実行後はテストをしてみて、ファイルが作成されるか試してみよう。
まとめ今回は比較的内容が盛りだくさんであった。ファイルを開くダイアログの使い方、画像の読み書き、そして関数を作ってまとめるといった処理である。 ということで、日記の入力機能はほぼ完了したので次回は閲覧画面の処理の実装を行っていくことにしよう。 <執筆者プロフィール>高橋 忍
<書籍情報>Windows Mobile 5.0のアプリケーション開発について、もっと詳しく知りたくなったら ![]() Windows Mobile 5.0 アプリケーション開発 Beginner's Book 高橋 忍・著/280ページ/2色印刷/B5変形/CD-ROM付
This article
posted by staff
on 2006/10/19 13:11
Track back URLhttp://www.willcom-fan.com/adm/mt-tb.cgi/157 Track backs: |
最近の記事【新機種レビュー】WILLCOM 03から新色「ブラックトーン」が登場! その注目ポイントは?タッチパネル対応の画面。横スライド式のQWERTYキー... 【新機種レビュー】カメラが付いた! ポップ&カジュアルなデザインの音声端末/HONEY BEE 2(WX331KC) ウィルコムが“ミツバチ”をイメージしたポップ&カジュア... スライド、ラメ、防水 ― ウィルコムから個性的な新音声端末が続々登場! 2008年10月28日、ウィルコムから音声端末3製品と... 手描きチャットで応募するイラストコンテスト開催! 10月28日に発表されたウィルコムの新端末。それと同時に紹介された新サービス... 音楽を2倍、2倍のキャンペーン 「カメラを買うと、ポケットカメラが付いてくる」 そんな通販番組が昔あったが、... 最近のトラックバック携帯可能な無線LANアクセスポイント「どこでもWi-Fi」from あろーい日記 http://www.wi WILLCOM D4に大容量バッテリーで。 from プチ株とPDA・PCと。 WILLCOM D4に大容 アカデミックパックとくまふぉんと。 from プチ株とPDA・PCと。 WILLCOM 03につい [W-ZERO3]辛口連発!? WILLCOM 03、WILLCOM D4を本サイトライター陣が評価 ウィルコムに期待することとは?/座談会 - 後編 from Kzou’s Diary (^^ゞ 当サイトのライター陣で行 「新つなぎ放題プラン」 from ねこもばGadget! β版 へっぽこ実験ニュースサイト - WILLCOM 03応援中!! 【料金プラン】音声端末で「 このサイトについてウィルコムFANは、ウィルコム携帯端末の活用情報を提供するサイトとして株式会社アスキー(現アスキー・メディアワークス)が2006年3月15日より運営しています。続きを読む... |
||||||