FC2ブログ
2018 07123456789101112131415161718192021222324252627282930312018 09
「H&Sの実験棟」は年中無休です入館は無料ですのでお気軽にどうぞ。
No. 471

アドレス帳を作ってみる-5

今回はアドレス帳に保存機能を追加します。
また、レコードの追加機能も実装してみます。

ところで、プロデル デザイナの使い方には慣れましたでしょうか。
フォームの作成方法やコントロールの配置方法、
そのプロパティの設定方法やイベントの設定方法、
設計画面の表示の仕方やコード画面との切り換え方等は覚えましたでしょうか。
これ等の一つにでも不安が有る場合は既出の1~4を読み返してください。

レポート用

さて、今回は新たにボタンを3つ追加して配置も変更しました。
追加するのは[保存]と[新規]および[登録]の3つのボタンです。
それぞれの配置は写真を参考にして下さい。
上の方にファイル関係のボタンを右サイドにはデータ関係のボタンを纏めました。

先ずは[新規]ボタンからです。
「クリックされた」イベントを作成して下記内容を書込みます。

モードは、「追加」
テキスト1をクリアする
テキスト2をクリアする
テキスト3をクリアする
テキスト領域1をクリアする


1行目はモード切替の宣言で後程説明します。
2行目からはテキストボックスの内容を空にして新規入力に備えています。
この新規入力機能を有効にするためにもう2カ所の変更が必要です。
一つ目は「編集を反映する時の手順」で変更前は下記内容です。

更新データは、{テキスト1の内容, テキスト2の内容, テキスト3の内容,
テキスト領域1の内容}
リストビュー1を更新開始する
リストビュー1の(選択番号)番目を消す
リストビュー1の(選択番号)番目へ更新データを挟む
リストビュー1を更新終了する


この部分の先頭に下記の1行を追加します。
これは先程の『モードは、「追加」』の宣言と対を成すものです。
これを入れないと新規ボタンをクリックした途端にそのデータが空になります。

もしモードが「編集」でなければ手順を抜ける


同じ様にしてプログラムの先頭付近に有る『「はじめの手順」』部分に、
下記の1行を追加します。
これは起動時に何方のモードかを指定するものです。

モードは、「編集」


次に[登録]ボタンを設定します。
[新規]ボタンと同じように「クリックされた」イベントを作成して、
下記の内容を書き加えます。

更新データは、{テキスト1の内容, テキスト2の内容, テキスト3の内容,
テキスト領域1の内容}
リストビュー1を更新開始する
リストビュー1へ更新データを加える
リストビュー1を更新終了する
モードは、「編集」


1行目でテキストボックスの内容を配列化しています。
2行目と4行目は画面のチラツキ防止です。
3行目でリストビューの末尾へデータを追加しています。
5行目は追加モードを編集モードに戻しています。

レポート用

最後は編集済みのリストビューの内容を住所録ファイルに書き戻す処理です。
[保存]ボタンの「クリックされた」イベントを作成して、
写真の赤枠の内容を書き加えます。
保存をして設計タブ(メイン画面)に切り替えます。

レポート用

編集時の入力欄は文字が入ってない時にはそれが何であるか分かり辛いので、
それぞれのテキストボックスに名前を付けます。
写真の様に左サイドの部品から「ラベル」を選択して4つ作成します。
それぞれのプロパティの内容欄に写真の様な名前を設定します。
これで分かり易くなりました。

この企画の初めに作るものを決めたら先ずはその画面をスケッチしたり、
或いはイメージしてみると良いと書きました。
でも、プログラムが初めての方には難しかも知れません。
慣れるに従って何をどうしたら良いのかが分かって来るので、
より完成形に近いイメージを思い浮かべる事ができるようになります。

アドレス帳はデータ ファイルの入出力機能やデータの編集と新規入力機能、
レコード単位での削除機能といった基本機能は一通り実装しました。
欲を言えば読みの自動入力や郵便番号から住所を引く機能等が欲しい処ですが、
それ等の拡張機能が無くても自給自足的に使用するにはこれでも十分です。

しかし、第三者が使う事を考慮するならエラー処理が不十分です。
現状では少し外れた使い方をしただけでエラーになる可能性が有ります。
拡張機能の実装と合わせて続編を遣る事も可能ですが、
この企画のアクセス数やコメント数からも関心度が高いとは言えないので、
これ以上引っ張る訳ににも行かず今回で終了です。
無いとは思いますが機運が高まった時には実現するかも知れません。
[No. 471] 2018/02/01(木) その他のHandS track back(0) comment(0)

コメントの投稿















| ホーム |
Page Top↑