GIANTのEyewear
ちょっと前の話になるのだけれど…自転車に乗る時に使うサングラス、GIANTのEyewear(アイウェア)を入手しました。GIANTのアイウェアには色々な種類がありますけれども、私が入手したのは「RAPTOR 2」(DAY & NITE)というもの。
調光レンズが使われていてUVを100%カットしてくれます。ノーズパッドが調節可能なのでフィット感が高く、ヘッドストラップも付属しているので安心。先日、次男が出場した大会で次男に装着させてみましたが、「RAPTOR 2」のサイズが少々大きくとも、ヘッドストラップがあるので問題なく装着でき、とても良かったみたいです。
自転車に乗る時に使えるアイウェアとしては、すでにドッペル純正のキャンペーン用サングラス(サイトでMyドッペルを紹介するともらえる)を持っていたのだけれど、レンズが黒いので晴天時じゃないと使えないんですよね。その点この「RAPTOR 2」なら調光レンズなのでそういう心配がありません。
残念なのは…私が自転車に乗る時間がとれないこと。最近は朝早く起きるのがつらく、午後6時にはもう暗くなっているし…。休みの日には薪関連の作業もしたいし、子ども達の行事もあったり…なかなか忙しいです(汗)。
これらは「RAPTOR 2」ではないですが…。
【HSP3】llmod3のlistviewでチェックボックスを取り扱う方法
Windowsで動作するフリーのインタプリタ型プログラム言語「HSP(Hot Soup Processor)」にて、標準同梱されている「llmod3」。HSP2.X時代から使われていたこのモジュールによって、標準命令にはないオブジェクトの配置やコントロールが可能になっておりました。HSPのバージョンアップに伴って使えなくなっていたのですが、開発者ではない方がHSP3.X用に修正したようで、標準同梱されるようになっています。これを利用して作れるオブジェクトにlistview(リストビュー)があるのだけれど、オプションでチェックボックス付きのリストビューを作成すると、そのチェックボックスを後からコントロールできない状態になっていたのです。ヘルプに書かれている内容がHSP2.X時代のもので動作しないのです。今日はそれを動作するように改良したお話…。
現在私がHSPで開発しているのが…仕事上で役立つアプリケーションのうち、最も大きなもの。いくつかのアプリケーションで構成されている、テキストファイルをWEB掲載するためのシステム。そのうちのWEB化するテキストを選択するアプリケーションに手を入れているところです。このアプリにはlistview(リストビュー)が2つ登場します。レイアウト的には2つのリストビューの間にテキストボックスがある感じです。
左側にあるリストビューはテキスト用。そこにあるテキスト名のひとつを選ぶと、隣にあるテキストボックスに中身が表示されます。テキストの内容を見てWEB化するかどうかを判断し、WEB化すると決まればリストビューのテキスト名が選択された状態でスペースバーを押すとチェックボックスにチェックが入る仕組みになっています。
この時、チェックが入ったテキストに関連した画像ファイルがあった場合、テキストボックスを挟んで反対側にある画像用のリストビューにある関連画像ファイル名の横にあるチェックボックスにも自動でチェックが入るようにしたいのだけれど…それを実現できなかったんです。
理由は先述した通り、listview命令のヘルプを見ても古いHSP用の記述になっていて動作しないため。ネットで色々と検索しつつ、Windows APIの勉強などもしてみたり…。そこで少しずつ分かってきたことをもとにして、ようやくチェックボックスの状態をチェックすることと、チェックボックスのオン/オフの切り替えができるようになりました。特にHSP3掲示板、10年以上前の過去ログに、llmod3の前身であるllmod時代のリストビューのモジュールが大いに参考になりました。これを機に私のほうでもモジュール化しておこうと思います。
以下にllmod3で作ったlistview(リストビュー)のチェックボックスの状態を確認する方法と、チェックのオン/オフの切り替え方法について書いておきます。(近くモジュール化し公開します)。
;リストビューのテスト
//2012/09/25 弐条海月作成
#include "llmod3/llmod3.hsp"
#include "llmod3/listview.hsp" //リストビューの作成
//リストビューコントロールの作成
listview 180,180,$50009 //リストビューを作成
id_listview=stat //リストビューのID
hwnd_listview=objinfo_hwnd(id_listview) //リストビューのハンドル
listaddcl 0,"タイトル",160 //リストビューに欄を追加
//リストビューの中身
txt_list={"あいうえお.txt
かきくけこ.txt
さしすせそ.txt
たちつてと.txt
なにぬねの.txt"}
//リストビューに表示
sel_listview id_listview //操作するリストビューを選択
notesel txt_list : idx=notemax
repeat idx
noteget txt_name,cnt
listadd cnt,txt_name,,,
await
loop
//ボタンの表示
pos 2,185 : button "状態チェック",*action
objsize 48,24
pos 75,185 : button "全選択",*action2
pos 130,185 : button "全解除",*action3
stop
//------------------------------------------------------
*action
//dialog "状態チェック"
a=8,0,0,0,8192|4096 //初期設定
repeat idx
a(1)=cnt
getptr po, a //sendmsg用のポインタを取得
sendmsg hwnd_listview, 4101, 0, po
if a(3) = 8192 {//チェックが入っている
dialog ""+cnt+"番目のアイテムはチェックされています",0,"a(3)="+a(3)
}
if a(3) = 4096 {//チェックが入っていない
dialog ""+cnt+"番目のアイテムはチェックされていません",0,"a(3)="+a(3)
}
await
loop
stop
//------------------------------------------------------
*action2
//dialog "全選択"
a=8,0,0,0,8192|4096 //初期設定
repeat idx
a(1)=cnt
getptr po, a //sendmsg用のポインタを取得
sendmsg hwnd_listview, 4101, 0, po
if a(3) = 4096 {//チェックが入っていない
//dialog ""+cnt+"番目のアイテムはチェックされていません",0,"a(3)="+a(3)
a(3)=8192 //チェックをオンに
sendmsg hwnd_listview, 0x1006, 0, po
}
await
loop
stop
//------------------------------------------------------
*action3
//dialog "全解除"
a=8,0,0,0,8192|4096 //初期設定
repeat idx
a(1)=cnt
getptr po, a //sendmsg用のポインタを取得
sendmsg hwnd_listview, 4101, 0, po
if a(3) = 8192 {//チェックが入っている
//dialog ""+cnt+"番目のアイテムはチェックされています",0,"a(3)="+a(3)
a(3)=4096 //チェックをオンに
sendmsg hwnd_listview, 0x1006, 0, po
}
await
loop
stop
休日なのに体調悪化…でも棚制作
先週末から体調を崩し始めておりまして、次男が出場した自転車大会があった昨日は鼻水が止まらず難儀しました。身体もだるく、朝早くから活動したこともあり早めに就寝したのだけれど…せっかく休みを取っておいて今日は完全に風邪の諸症状が出ており散々でした。
起き上がる元気もなく、午前中はゴロゴロしながら過ごしました。三男が帰ってくる時間になり、バスを出迎えるために外に出たのだけれど…午前中に降っていた雨が上がっていて、体調も少しだけ良くなっていた(薬を飲んだから)ので、バスが到着して三男が帰ってきても、外で棚制作の作業をしました。
棚とは先日、途中まで作った靴箱の横に置く棚です。写真は主な材料。最初はシナランバー材を買って使おうと計画していたのだけれど、コスト削減のためすべて端材のみにしました。下の部分はすでに完成しているので、今日は上段の部分を作りました。なかなかまとまった時間がないとできない作業ですし、できるだけ早く完成させたかった…というのもあります。
2段目の棚の天板には、1段目と同様に余っているフローリング材を用います。ちょうど良い長さのフローリング材があったのでそれをほぼ真ん中で切断し、繋げて補強してからちょうど良い寸法にカット。脚は不揃いの長さの材を丸のこでカットして揃え、天板にネジ止め。横には補強の材を入れておきました。
1段目と2段目の棚の接合は…2段目の脚が乗ることになる1段目の天板部分4カ所に途中までネジを埋め込み、ネジ頭が出ている状態にしてからネジ頭にペンで色を塗り、そこに2段目の脚をくっつけて色を写してからドリルでネジ頭が入る穴を開けます。こうすることで取り外しが簡単にでき、ずれたりしない棚の完成です。
このアングルからだと天板裏の補強の材が丸見えですね(笑)。決して見た目は良くないですが…ちょうど靴箱に隠れるように作ったので玄関ドアからは見えません。良い感じに仕上がったのではないかと思います。