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

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

今回はアドレス帳に編集機能を追加します。
リストビューは表計算ソフトの様な外観を持っていますが、
エクセルの様にセルに直接カーソルを入れて編集する事はできないようです。
仕方が無いので別に入力用のコントロールを用意して、
リストビューの項目と1対1に対応させる方法を採ります。

レポート用

写真の様にフォームを拡大してリストビューの配置も下げます。
プロデル デザイナの左サイドに有る部品メニューからテキストを選択して、
赤枠の様に上から順にテキスト1、テキスト2、テキスト3を配置します。
その下に青枠の様にテキスト領域を少し大きめに配置します。

リストビューを選択して右クリックして[イベント手順の選択]を選択します。
写真の様なダイアログが開くので[選択された]を選びます。
保存してからプロデルのデザイナをコードタブに切り替えます。

レポート用

追加された手順に写真の赤枠の内容を追加して保存します。
1行目はエラー回避のおまじないです。
これが無いと2回目以降の選択で致命的なエラーが発生します。
2行目で選択された行を選択番号という変数に入れて、
3行目で選択されている行データを取得しています。
4行目からはその行データを新設したテキストボックスに割り振っています。

レポート用

プロデルのデザイナから実行してデータを読み込みます。
リストビューの任意の行を選択すると写真の様にテキストボックスに反映されます。
これでリストビューの内容を編集する手段は確保できましたが、
編集したデータをリストビューに書き戻す方法も必要になります。

レポート用

そこで4つのテキストボックスそれぞれにイベントを設定します。
リストビューに設定した時と同じように[イベント手順の選択]で設定します。
今回のイベント トリガは[内容が変化した]を選択します。

レポート用

追加されたイベントに写真の様な内容を書き込みます。
4つのテキストボックスの内容は殆ど同じものです。
今回は初めて「もし~」文が出て来ましたがこれを条件分岐と言います。
要するに編集されていなければ何もしないで編集された時だけ実行されます。
実行内容の「編集を反映する」はイベントではないので、
自分で設定する事になります。

レポート用

プロデルのコードタブで写真の様な手順を書き加えます。
こうする事でどのテキストボックスが編集されてもその処理はここへ飛んで来ます。
内容は下記の様にします。

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


リストビューは行と列を指定してデータを書き込む事はできないようです。
行単位の削除と追加は可能なのでそれを利用しています。
1行目はテキストボックスの内容を一覧形式にして、
それを「更新データ」という変数に入れています。
3行目で選択行を削除しています。
4行目で同じ位置に更新データを書き加えています。
2行目と5行目は画面の書き換えを抑制する働きが有ります。

今回はここまでです。
次回は保存処理について書く予定です。
[No. 470] 2018/01/31(水) その他のHandS track back(0) comment(0)

コメントの投稿















| ホーム |
Page Top↑