工房日記(2003/07〜)
工房日記(2003/07〜)
03/08/28
FNCVT
まだ残作業はあるのだが、ヘルプを作りつついろいろ確認しているうちにリソースの解放漏れがあることに気付いてしまう。変換プレビュー画面を作成するときにCreateDialog()を使っているのだが、何を考えたのかEndDialog()で終了していたのが原因。DestroyWindow()に修正し、そのときなぜかプレビュー内のアイコンがうまく表示されなくなってしまったりして、どんどんハマっていく。結局原因はわからなかったのだが、グローバルで保持していたイメージリストを、プレビュー画面作成毎に作成し直すことで対処はできた。とにかく、今回の不具合は何度も何度も続けて変換しようとする場合にヤバいことになるかも知れないなぁと思いつつ、結構前からの潜在的な現象だったにもかかわらず今まで報告もなかったし、対策を要求されたらすぐに4.3βとして出せる準備だけしておこうということにした。まだヘルプも画面ビットマップの修正してないしなぁ・・・。
03/08/27
FNCVT
次の作業。「先頭大文字、以下小文字」変換で、スペースだけでなく数字や他の英字以外の場合も直後の英字を大文字にできるようにしたかったのだが、まずこの指定をさせる部分がもうエリア的にパンパンで、ウィンドウ枠を広げるところから始まる。そして各部品も拡大して、なんとか枠に収まるように。変換処理自体は簡単なものの、ログ出力部分や変数追加などで多少の混乱はあったり。この部分も完成し、なんとなくついでに「スペースの削除」でもスペース以外の文字も削除できるようにしてしまおうかと思い立ちつつ、面倒になってきたのでまた今度にしようと。まだメインのやりたいこともあるし、先は長いなぁ。
03/08/26
FNCVT
積み残していた作業を開始。変換対象ディレクトリでのワイルドカード指定と、正規表現指定でのワイルドカード指定の区別がイマイチつかない上に、正規表現指定するとそれにマッチするディレクトリを変換できないのはアレだなぁ・・・ということで、バッサリと整理することにした。結果、対象ディレクトリでのワイルドカード指定は、あくまでワイルドカードを指定した上位のディレクトリ内を変換するという解釈に決定。ということで、対象ディレクトリでワイルドカード指定をした場合はディレクトリの変換及びサブディレクトリ内の変換はできないことに。というか、この部分は今までも「指定はできていたが実際には変換対象になってくれない」という不具合めいたものだったりするのだが。で、その代わりというか正規表現指定でディレクトリ変換を可能に。ところがこの部分の修正がめちゃめちゃメイン部分でいじるのが大変。最初に正規表現にマッチしたディレクトリを覚えておいて、その前にファイル全てを処理して、マッチしていたディレクトリも変換して、「サブディレクトリ内も変換」であればディレクトリを全て検出してその中のものに対してまた正規表現を掛けて・・・と気合いを入れないとワケわかんなくなる状態。なんとかかんとか一気に修正できたのでとりあえずは一安心。
03/08/22
ぷちらんちゃ
この前の問題を修正した後、なんとなく物足りないなぁと思ってキー操作を充実させようと思い立つ。ボタン上にマウスカーソルを置いた状態でのキー操作で、Windows操作に準拠っぽく「[Ctrl+C]でコピー」みたいなことをできるようにしてみた。コピーだけでなく切り取り・貼り付け・位置交換もできるようにして、更に削除もできるようにして、その途中にキー操作でタブを選択するのに1〜8までしか指定できてなかったじゃん、というアホな仕様不備を発見。いざ修正しようとして、「タブ10以降はどのキーに割り当てようか」という問題に当たり、まぁ10は「0」だろう、するとその隣にある「-」「^」が11、12だな、とか思ったが、テンキーだとどうなるんだということで、「-」に近い「+」でも12を指定できるようにしよう、と我ながら安易な発想の元にそういう仕様として作り込んだ。まぁ操作は「慣れ」が全てってことで・・・。(^^;
で、どうにか2.2として納得して完成し、リリースへ。そろそろネタ切れかな・・・。
03/08/20
ぷちらんちゃ
「タブの上に一定時間マウスポイントしたらそのタブへ表示を変更」という機能の要望があったのでそれを入れてみる。最初はWM_MOUSEHOVERを拾えばいいかと思っていたのだが、生憎コントロールを使った部品ではないのでなかなかこれで実現するのは難しく。しょうがなく素直?にタイマーを掛けることにして実現。要望を聞いたときは正直「必要な機能なのかなぁ」と少々疑問だったが、この機能で遊ぶ分には楽しいからいいことにしておこうかと。(ぉ
で、他にテストしていて「設定画面での初期表示タブが必ず画面設定」なのがうっとうしくなり、ついでにこれも「設定を変更して閉じた場合にはそのときの表示タブを次に開いたときに初期表示」するようにしてみた。その途中、アイコンパスが80バイトまでの領域しか取っていなかった部分を見つけて、こりゃヤバいと慌てて修正。今までこの辺の報告もないし、まぁ80バイトあれば普通のパスなら大丈夫なんだろうけど・・・。
03/08/18
FNCVT
しばらく夏休みを頂いて開発もお休みしていたのだが、ちょこちょこと要望事項等が来ていたこともあって密かにいじっていたわけで。大きなサポート項目はないもののそれなりの量の修正や改善も入ったので、4.2としてリリースすることにした。大きなサポート項目も用意はしてあるのだが、かなり面倒になりそうなのでとりあえず今回はサポートせず、次バージョンでやろうかなぁと。
03/08/05
ぷちらんちゃ
タブ内登録可能数を当初50個にしていたのだが、たかだか10個増えたってなぁ・・・と思って、どうせ登録可能数自体でメモリを食うわけじゃないしと100個に倍増。おかげで最大ページ数が2桁になる場合があったりするので、ページ移動ボタンの位置をズラしたりと余計な修正も入ったり。でもこれで環境的にリッチな人は画面いっぱいのランチャーボタンに囲まれる生活も少しはできそうになってきたということで。この辺をいろいろいじってて判明したのだが、アイコンを保持すると思うよりも多くGDIオブジェクトを食ってくれるわけで、そもそもグラデーションやら自前ボタン処理やらで余計なメモリ食ってそうなプログラムになってしまったなぁと実感。どこが「[ぷち]らんちゃ」なんだかわからなくなってきた・・・。(笑
ということで、いろいろと調整をして2.1としてリリース。今度は不具合も出ませんように。
03/08/01
ぷちらんちゃ
なんだかんだで黙々と作業をしていたら、思ったよりもあっさりとタブ数の増減の処理が完成する。勢いのままタブ内登録可能数の増減の処理も取り掛かるが、さすがにこちらは影響範囲が広すぎて苦戦するが、しばらくかかると思った割には早くに完成してしまった。まぁ慌てて出してまたすぐ不具合が出てもアレだし、週末に様子を見て来週にリリースすることにしよう・・・。(弱
03/07/30
ぷちらんちゃ
自分でぷちらんちゃを使っていると、妙な違和感を感じた。調べてみると、横画面で使っていると最小化ボタンと終了ボタンの隙間にマウスカーソルを当てるとタブ1が選択されたことになってしまう現象を発見。でもまぁこれくらいなら急いで対策版を出す必要もないよね、と思っていたのも束の間、掲示板の方でフォルダからの一括登録時にゴミが入ってしまう現象を報告される。これはさすがに直さないとマズいなぁ・・・。ということでささっとこの辺は修正。
で、問題報告のついでにあった要望もあり、これはタブの数を増やすというもの。実はちょうど「タブなしモード」ってのを作ろうとはしていたわけで、この際だからタブ数を自由に設定できるようにしようと思いつつも、あまりタブが多いと画面上でのタブ選択が狭すぎて選択しづらかったり、縦画面モードだとタブ番号の表示が2桁になるとはみ出してしまったり、まぁいろいろと問題は出てくる。いろいろ試して、タブの上限として12まではなんとか選択できないことはないだろう大きさで入ることが判明。縦画面での文字は、2桁になったら文字を細くすることで対処。で、更なる最大の壁というのが「タブ数を減らしたときに、削除されるタブに既に登録してあるものをどうするか」というものがあるわけで。何も入っていないタブが空いていればそこに移動させるのはいいとして、あとはしょうがないから削除してしまうことにするしかないかなぁと。警告メッセージを出しておけば何とかなるかなとも思ったり。しょうがないし。
あとは「タブの中に登録できる個数」ってのも今は40個固定になっていて、それをタブの数に合わせて増減するという手も考えてみたり。しかしこれをやるとタブを増減するたびにタブの中の登録したものがタブ間で移動しまくることになるので実質無理な話で、そうなるとタブ内の登録数は固定あるいは設定できるようにするしかない。仮に設定できるようにした場合、減らした場合に削除されるものが出てくるのは前の件と同じでしょうがないとして、今度はページ毎に表示できるボタンの数というのが自在というか、うまく言えないが作者的には考えたくないような感じなってしまってどうしようと。
そんなことを考えながら、とりあえずタブが増えてもいいように画面表示の方法を改善してみたり。今まで手を抜いていた部分も、緻密な計算(笑)によって表示されるようにしてみた。さて、次はいよいよタブ数の増減だな・・・。ちょっと気が重いけど、不具合修正の件もあるのでゆっくりもしてられないわけで。
03/07/24
ぷちらんちゃ
2.0でctrlキー等を使用しての特殊操作を作り込んだのだが、そのとき「今回のバージョンではいいや」と思ってやらなかった「Ctrlキーを押しながら登録済みの登録ボタンをドラッグして他の登録ボタンにドロップすると位置交換ができる」という特殊操作を、「ゆっくりと」作ってみようといじっていたら、縦画面モードでの「中→外」のグラデーション描画に妙な隙間ができていたことに気付く。まぁこの程度なら慌てて修正することもないかと思っていたら、今度は「登録ボタン以外の部分で登録画面を出せてしまう」という現象を発見。この場合はヘタすると例外発生の可能性があるわけで、慌てて修正。で、今日中に出してしまいたいと作りかけの位置交換特殊操作も大慌てで作り込み、何とか形になってくれて一安心。実は他にも細かい不具合(縦画面だと最小化・終了のボタンを押してもすぐにはヘコまない、等)も修正して、2.0aとして超特急リリース。この前のFNCVTでもこんなことをやってた気がするし、ツメの甘さはいつまでも直らないものかねぇ・・・。(--;
03/07/23
ぷちらんちゃ
起動や登録の方法を少しでも楽にしようと、CtrlキーやShiftキーを押しての登録ボタンへのアクションがあった場合の処理を組み込んでみた。これでだいぶ操作性は向上したはず。ということで、他にいろいろ微調整してみたりヘルプを直したりという作業をやって、やっと2.0として納得いく仕上がりになったのでリリースすることにした。ついでにアイコンを2.0記念ということで色気を出してみたり。そして今日は誕生日だし、Birthday Special Editionとかバージョンに入れようかと思いつつ、ものすげく頭が悪そうというか、さっぱり意味不明なので我に返ってやめてみた。(笑
03/07/22
ぷちらんちゃ
縦画面サポートの途中で新たな不具合報告を受ける。アイコンの再読み込み漏れなんだけど、なんでもうこんなしょーもない不具合を残しておくかなぁと自己嫌悪に陥りそうになりつつ、一瞬で修正して縦画面の方をまた作り込み。で、まぁ何とか完成したわけで、画面的にはこんな感じ。メッセージ領域は表示したところでどうやっても読みにくくにしか表示できないし、ってことで表示しないようにしてみたんだけど、まぁツールチップ機能もあるわけだし大丈夫だろうと。さて、あとは何を入れ込もうか。このまま出してもいいんだけど2.0にバージョンアップしたわけなのでもうちょっとオマケ入れたい気がしないでもなかったり。
03/07/18
ぷちらんちゃ
ようやく思い立ってVer2の製作に取り掛かろうとして、保留にしてた縦画面サポートをやってみようと思いつつ、ふと自分で使ってて「あったら便利」な機能である「ボタン上にマウスをポイントしたときにその内容をツールチップで表示」というのを作り込んでみた。いろいろ調べてみると意外に簡単なもので、そんなに労せずに完了。で、本命の縦画面サポートに取り掛かったのだが・・・ああもう予想通りの大苦戦。ほとんどの描画部分に影響があるわけで、ちょっとずつ修正して画面を出してみて確認・・・という作業を幾度となく繰り返す。なんとか見た目だけはそれなりになったところまで作り込み完了。あとはボタンの検出とかいろいろまだまだいじらなきゃならないところは残ってたりするわけで、しばらくかかりそう。まぁ今のところ1.6での要望も問題も出てないのでゆっくり作業はできそうだけど。(^^;
03/07/15
ぷちらんちゃ
細かい調整とヘルプの整備をして、なんだかんだで割と間が空いてしまった気もするが1.6として完成ということに。縦画面モードは今後の課題ということにしておこう・・・。(^^;
03/07/11
ぷちらんちゃ
外見周りをちょっといじってみるかと、とりあえず右クリックメニューのオーナードローに挑戦してみようとしてみた。が、どうにもかっちょよくなくて速攻で諦め。しょうがないので他に外見的なところをいじろうとして、色調周りをいじり倒してみた。標準色を8色から12色に増やしてみて、標準色の場合はその明度も指定できるようにしたりして、設定画面自体もイメチェンして・・・あとはネタ切れ。登録周りをいろいろいじったりしたものの、外見的にはあまり変わらないし、やっぱり今回もVer1のままって感じで落ち着くのかも。縦画面モードもやろうかと思いつつ、これをやるとなると結構な作業になるのでとりあえず保留中。
03/07/08
ぷちらんちゃ
仕様確認依頼があって、その延長で「やっぱりこうした方がいいなぁ」と思われる部分をちょこちょこいじってみる。やり始めると結構根が深い部分だったりもして、そうしてるとついついその周りで気になった部分や改善したくなってしまう部分を見つけてそこもいじり、気が付けば今回今まで何を修正・改善したのか自分でもわけがわからなくなってきたりしたり、そんな感じで結構な改善項目を盛り込んでいく。不具合が見つかってるわけでもないし、もうちょっと入れ込んでそろそろVer2に仕立て上げようかとも思いつつ、それで外見が変わらないままってのもアレだなぁと思ったり。
03/07/02
FNCVT
mp3読み込み時に落ちるという問題報告者より、mp3ファイルを添付したメールが届く。4.1で落ちることを確認し、4.1aでうまく動いたので安心していたのだが、FNCVTの画面をよく見るとそのmp3ファイルのID3バージョンが「V1」になっていることに気付く。まさか別件だった?と思いながら、V1の解析ロジックはそんなにいじったつもりもなく、mp3ファイルを調べてみるとV1とV2の両方の情報が入っていることが判明。こんなフォーマットもあるんだなぁ。確かに4.1aではV2よりも先にV1かどうかをチェックするように内部的に変更してたなぁと思い、とりあえず設定にV1とV2のどちらを優先的に読み込もうとするかを設定する処理を入れてV2での情報を見ようとしてみたところ、いきなりFNCVTが落ちた。調べてみるとV2.2ではなくV2.3だったようで、また調査開始。しばらく調べて、V2.3の場合にフレームヘッダ内の読み込むビットを間違えていた&圧縮設定の場合を考慮していなかったということが発覚。それを修正してやっとV2での情報も見れるようになり、ようやく本当の安心感が戻る。今回の件で更に不必要にID3情報に詳しくなってしまった気がしないでもない・・・。
で、他に改善項目を入れてみたりいろいろ調整したりして4.1bとして早々にリリースすることにした。もうしばらくこの辺の処理は見たくないな・・・。(笑
03/07/01
FNCVT
インターネットでID3_V2のmp3をいろいろ落としているうちに、やっとFNCVTが落ちてくれるようなものにブチ当たってくれた。中身を調べてみるとV2.2らしい。で、よくよくフォーマットを眺めて調べてみると、今入っている解析ロジックにどうも合っていない。あれあれ?と思って調べてみると、今入っている解析ロジックはV2.3以上用のものだったことが判明。そりゃ落ちるよなぁということでV2.2用のロジックも入れて、なんとか修正完了。ついでにこの辺にいろいろ手を入れて、もうちょっと使えるようなものに仕上げてみた。そして4.1aとして早々にリリース。
ぷちらんちゃ
結局は余計にいじる必要はないだろうということで、そのまま1.5bとしてリリースすることにした。あまりゴテゴテした機能ばかり付けてもアレだしね。