0 && $edn < $lmax ) ? $edn: $lmax; $fmt = '%0'.strlen($edn).'d: '; for (; $stn<=$edn; $stn++ ) { $tstr = htmlspecialchars(mb_convert_encoding($lines[$stn-1],SOURCE_ENCODING,"auto")); $res .= ( $args[2] ? sprintf($fmt,$stn):'').refpre_replace_tab($tstr); } return '
'.$res.'
'; } ?> E71:appuifw.Formとe32dbmを使ってみた - HiiHahWIKI - making some notes for... -
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

E71:appuifw.Formとe32dbmを使ってみた

Last-modified: 2013-08-24 (土) 02:14:21 (2281d)
Top / E71:appuifw.Formとe32dbmを使ってみた

E71:appuifw.Formとe32dbmを使ってみた

appuifw.Formをつかってデータを入力し、入力されたデータをe32dbmで保存するような機能を作ってみました。

添付ファイルのソースをDLすれば、実行することができます。

なお、e32dbmのファイルを「e:\Documents\python」に保存するつくりとなってますんで、このディレクトリがない場合は、作成するかソースを修正してください。

ポイント

簡単ですが解説します。

8行目
e32dbmで保存するファイル名を指定しています。
15行目~
e32dbmにデータが入っていない場合、デフォルト値として空白を設定
22行目~
e32dbmからデータを取得し、ユニコードに変換して値を設定
28行目~
Formにセットする項目、型、データをリストとして設定
36行目
Formクラスを生成
37行目
Formクラスのsave_hookを設定
フォーム画面表示中の左シフトキーの「Save」メニュー選択時に実行されるcallableオブジェクトを指定します。この場合、「ConnInfoMngr?」クラスの「menu_save」メソッドを指定してます。
このメソッドは呼び出し時に、formの現在値が格納されたリストが引き渡されます。
39行目~
データの入力チェック。要素の長さが0である場合はチェック結果失敗としている。
65行目~
e32dbmでデータを保存します。
73行目~
executeメソッドでフォーム画面を表示します。

■ソースコード

#refpre(formtest3.py,,1)

イメージ

動かすとこんな感じになります。

■起動時 左シフトキーを押すとメニューが出てきます。

Screenshot0101.jpg

最初は、何も値が入力されていない状態のフォームが表示されます。

Screenshot0102.jpg

左シフトキーを押すと、「edit」メニューが表示され、選択すると入力が脳になります。

Screenshot0103.jpg

入力可能画面

Screenshot0109.jpg

入力が完了したら、左シフトキーを押して「Save」を選択します。

Screenshot0104.jpg

データを保存し、値が編集できないモードになります。編集が完了したら右シフトキーの「Back」で戻ります。

Screenshot0105.jpg

最初の画面で、メニューから「print-info」を選択すると、e32dbmに保存されている値を表示できます。

Screenshot0106.jpg

Screenshot0107.jpg