開発じたばた日誌
前へ●●●次へ
じたばた日誌目次へ戻る
TSUCHY Softへ戻る
FileSum ツリー表示編
ツリーのサンプルはこんな具合ですね。
□ c: 1
├□ ATOK11 2
│└□ ATOK11 3
├□ JSLIB32
│├□ WINAPPL
│└□ DRV
├□ WINDOWS
│├□ スタートメニ~1
││└□ プログラム
││ ├□ SHADOW~1
││ │└□ WEBLIN~1
││ ├□ WS_FTP 4
││ ├□ スタートアップ
││ └□ アクセサリ
││ └□ システムツー~1
│├□ MSAPPS
ちらっと見ただけでも4パターンはあります。
ツリーは│、├、└、を使えばかけるのですが、どれを使うか判断するときは、表示しようとしているディレクトリ
の深さはもちろん、次に同じ深さのディレクトリが存在するか(├、└のどちらを使うか)をわかっていないといけません。
さらに4のパターンでは親ディレクトリから延びている線(C:\とWINDOWS)を表示しないといけませんが、「スタートメニ~1」
からのばす線を表示してはいけません。
このあたりの、親子関係、兄弟関係、親に兄弟がいるかを判定して線を引いていくのにかなり苦労しました。
まさに頭が加熱状態(熱暴走の手前)のようになります。
FileSum 縦スクロール編1
VBでのFileSumを作ったのはかなり前なので、苦労も忘れてしまったのですが、たしか縦スクロールは苦労しました。
スクロールバーで絵を普通にスクロールさせるだけで苦労するのです。
スクロールってどうやったらできるのでしょう?真っ先に思いつくのは、スクロールされるたびに全部の絵を
書き直すのです。実際につくってみました。
できることはできるのですが、遅い!遅すぎる! しかもちらちらするのです。MSJ(Microsoft Systems Journal)
の記事の言葉を借りれば、優秀なプログラマは画面のちらつきを許してはいけないのです。
でも世の中のソフトは画像を全然ちらつきなしで素早くスクロールしています。きっとなにか手があるんだ。
さあAPIの世界をのぞいてみよう。あった。その名もずばりScrollWindow。
このAPIは現在表示している部分を利用して、ごそっとスクロールしてくれます。あとはスクロールによって
発生する新しく表示する必要のある部分を自分で表示するだけです。おおAPIの力のすごいこと。スクロール
速度が今までより格段に速くなりました。