| |
|
|
|
第13回 日記アプリケーションを作る ―その9 閲覧機能の実装前回までで入力機能の実装はほぼ完了した。後は閲覧機能を残すのみとなったわけである。とりあえず今回の閲覧画面のデザインは簡易的なものを用意しているが、ここはそれぞれの腕の見せ所である。 しくみを考える閲覧画面は、ある意味楽である。日記を読み込んで表示すればいいわけだから、入力画面でやった日記の読み込み機能と基本的には変わらない。 一覧画面から、表示する日付を指定したら、閲覧画面(viewForm)に渡して、閲覧画面ではその日付の日記を読み込み表示する。 日記を表示するための処理まずは、日付を渡される準備をしておこう。第11回で行ったのと同じだ。ソリューションエクスプローラのviewFormを右クリックして「コードの表示」を選択してコードを表示しよう。そして以下のコードを追加する。 Imports System.IO
Public Class viewForm
Public opendateString As String
End Class
またファイルの扱いになるので、System.IOの宣言をしている。 では続けて読み込み処理を実装しよう。第11回でも行ったのと同じようにFormのLoadイベントに読み込み処理を実装する。コード画面の左上にあるプルダウンメニューから「(viewForm イベント)」を選択し、右側からは「Load」を選択する。すると viewForm_Loadメソッドが表示されるので以下のコードを実装する。 Private Sub viewForm_Load(ByVal sender As Object, …
loaddiary()
End Sub
ずらっとコードが出ているが、実は見てみると分かるようにほとんどは編集機能を実装した際の内容から持ってきたものである(loaddiary関数にまとめている)。getFilePathの中身の一部と、titleText がtitleLabelに変更。そして、日付表示のためのコードを追加しているだけである。 続けてこちらを呼び出す機能を実装する。listFormのコード画面を表示して以下のコードを追加する。 Private Sub viewMenu_Click(ByVal sender As System.Object, …
If Me.diaryList.SelectedIndex < 0 Then
Return
End If
Dim myviewForm As New viewForm
myviewForm.opendateString = Me.diaryList.SelectedItem.ToString()
myviewForm.ShowDialog()
End Sub
この機能も「編集」機能とあまり変わらない。違いがあるのは、閲覧機能の場合はリストに何もなければ表示しないため判定してreturnしている。Return関数はこの時点でこの後の処理をすべてせずにこの関数を終了するものである。 一度テスト実行して動作確認をしておこう。 「次へ」と「前へ」をどう実装するか(準備編)さて、問題はここからである。日記の次へ、前へという機能であるが、これを実装するためには、既存の日記の一覧が必要になる。 そこで、この閲覧画面のはじめに日記の一覧を作成するのも手だが、日記の一覧はそもそも一覧画面でチェックしているはずだ。そこで、日記の一覧をチェックする際に、日記のリストを作成して、閲覧画面を表示する際にはこの一覧を渡すようにしよう。 まずは、viewForm側に以下のコードを追加しよう。 Imports System.IO
Public Class viewForm
Public diarylist As System.Collections.ArrayList
Public index As Integer
Public opendateString As String
:
ArrayListは名前のとおりリストを扱うための変数だ。一覧画面からこのdiaryListに渡すことになる。そしてもう1つの変数indexはリストの何番目を指定したかも渡してもらうための変数である。 では、今度はlistForm側でリストを作成して渡す処理を実装してみよう。 Imports System.IO
Public Class listForm
Private diaryArrayList As System.Collections.ArrayList
まずは、リストのための変数を準備している。 続けてリストを作成しよう。ファイルから日記一覧を作成しているところでリストの作成をする。 Private Sub listForm_Load(ByVal sender As Object, …
:
Me.diaryArrayList = New System.Collections.ArrayList()
For Each file As String In _
Directory.GetFiles(folderpath, "*年*月*日.txt")
Dim datename As String
datename = Path.GetFileNameWithoutExtension(file)
まずは、空のリストを作成する(New System.Collections.ArrayList() )。そして、リストボックスに項目が付いていた部分を削除して、このリストに追加するように変更している。ただしこのままでは、リストボックスに一覧が追加されない。そこで最後に、リストボックスとこの作成したリストを紐付ける。こうするとまとめて登録できるほか、リストを変更するとリストボックスの内容も変更される。これをバインドと呼ぶ。 さて、リストが完了したので最後に閲覧画面を表示する際にリストと、リストの何番目が選択されているのかを渡すように変更しよう。 Private Sub viewMenu_Click(ByVal sender As System.Object,…
If Me.diaryList.SelectedIndex < 0 Then
Return
End If
Dim myviewForm As New viewForm
先ほどは日付の文字列を渡していたが、今度はリストを渡すことに変更している。と、いうことで、今度は受け入れ側も修正しなければならない。 続いてviewForm側のコードの修正である。 Private Sub loaddiary()
'日付の取得
opendateString = diarylist(index).ToString()
' textBox のクリア
Me.titleLabel.Text = ""
Me.contentText.Text = ""
:
リストから、日付を取り出す処理を追加している。リストからの内容の取得は リスト(番号) の形で取得する。 ここで一度実行してテストをしてみよう。コードをいろいろ変更したが、基本的には同じ結果となるように変更しているので動作は変わらないはずだ。 「次へ」と「前へ」をどう実装するか(実装編)さて、本題の次へ、前への機能の実装である。基本的にリストと、インデックスがあるので話は簡単である。インデックスを変えてやればいいだけだ。 閲覧画面のデザイン画面を表示して、「前の日記」メニューをダブルクリックして、以下のコードを実装しよう。 Private Sub previousMenu_Click(ByVal sender As System.Object, …
If index > 0 Then
index = index - 1
loaddiary()
End IfEnd Sub
リストのインデックスを1つ減らせばよいだけだが、マイナスになってはいけないので事前にチェックしている。インデックスを変えたら、loaddiaryを呼び出して表示を変更する。 同じく「次の日記」メニューも同じように変更する。 Private Sub nextMenu_Click(ByVal sender As System.Object, …
If index < diarylist.Count - 1 Then
index = index + 1
loaddiary()
End If
End Sub
同じくオーバーフロー処理をしている。まず、オーバーフロー処理にはリストの個数が必要だが、これはdiarylist.Countで取得できる。気をつけるのは、indexが0からスタートするということである。つまり5個の日記リストがあった場合、diarylist.Countは5となるが、indexは0から4までとなる。そのためdiarylist.Count - 1と比較しているのである。 テストさて、実行してみよう。リストから日記を選んで、「日記の表示」を選んで日記が表示されることを確認しよう。また、「前の日記」「次の日記」を押して日記が切り替わること、を確認しよう。 まとめこれで日記アプリの完成である!しかし、まだ油断してはいけない。たとえば何箇所にも同じコードが書かれているとか、まだ動きとしておかしい部分もある。またアプリケーションとしてもきちんと抑えておくべき点がある。 次回はこういった問題1つひとつチェックして修正していこう。完成までもう一息だ。 <執筆者プロフィール>高橋 忍
<書籍情報>Windows Mobile 5.0のアプリケーション開発について、もっと詳しく知りたくなったら ![]() Windows Mobile 5.0 アプリケーション開発 Beginner's Book 高橋 忍・著/280ページ/2色印刷/B5変形/CD-ROM付
This article
posted by staff
on 2006/10/26 12:22
Track back URLhttp://www.willcom-fan.com/adm/mt-tb.cgi/161 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日より運営しています。続きを読む... |