アドレス帳⑦ 『HSP3』


前回は一覧画面を作成しました。今回はリストボックスに表示した一覧からレコードを選択して削除する処理を行います。

address06

【sample.hsp】 ※行番号は説明上の番号です

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
#include "lib_address.hsp"
screen 0,600,400 //windowサイズ
title "住所録"        //windowタイトル
//*********************************************
//    初期設定  メニュー画面  初期化 登録編修画面
//*********************************************

                                 略
//*********************************************
//                一覧画面
//*********************************************
*list
   略
    pos 50,20   :mes "■一覧"
    objsize 400,270           
    pos 100,50 :listbox listNo,0,tmp
    objsize 100,25
    pos 250,320  :button "削除する",*del 
    pos 400,320  :button "戻る",*menustop

//*********************************************
//    新規登録・編集処理
//*********************************************
*regist
   略

stop
//*********************************************
//     削除処理
//*********************************************

*del
    notedel listNo
    bsave saveFile,dbData 
    goto *list
stop

//*********************************************
//    終了処理
//*********************************************
*appEnd
   end
stop

一覧画面に「削除する」ボタンをつけました。「削除する」ボタンをクリックするとラベル「del」へ飛び削除処理を行います。
リストボックスの一覧は、「名前」と「ふりかな」のみを表示していますが、リストボックスとバッファーとのインデックスが対応するように作成しました(前回)。15行目でリストボックスを作成し、選択された行番号(インデックス値:0スタート)は変数「listNo」に格納されます。29行目でこの変数「listNo」の行をバッファーから削除しています。この時点ではまだバッファーからは削除されていますがファイルは何も変化ありません。30行目で削除されたバッファー内容をファイルに上書きして更新しています。削除処理が終了したら31行目で一覧へ戻しています。
 

サンプルファイル:
lib_address.hsp
sample090416.hsp

  


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です