ツイートする このエントリーを含むはてなブックマーク [雑記]

標準機能の追加 / 2009-03-16 (月)

前回の雑記から5日間経ちましたが、それまでの間にまたいろいろな機能の追加をしました。

今回の更新では予定していなかった送信メールの編集機能(送信メールの件名をダブルクリック
することで送信メールを編集出来るようにした)や、新規メール作成画面の編集メニューに
メモ帳ではおなじみの検索と置換の機能まで付けてしまいました。

ここまでに何度か難問にぶつかったのですが、MSN相談箱などの質問サイトの答えを参考に
してなんとかこの新バージョンの開発にこぎつけることができました。

今回のバージョンではやらない予定ですが、テキストエディタ部分のコンポーネントを
普通のテキストボックス(TextBox)からフリーで使えるエディタコンポーネントに
変えてURLなどの自動リンク表示など、この辺りの機能を簡単に使用できるように
出来たら良いかなぁ・・・・って思っています。

Ak@Ne! Version 1.1のデモ(送信メール編集機能)


ツイートする このエントリーを含むはてなブックマーク [雑記]

カラムでのソート機能を修正していたら・・・ / 2009-03-11 (水)

現在のプログラムだと不完全なリストビューカラムソート機能が付いている
だけなので、これに関しても今回の1.1で改善しようと思い修正に挑戦
してみたのですが、なかなかすぐ完成に持っていけるものではありませんでした。

最初につまづいたのはArrayListのソートという概念で、ソートをしなくちゃまずいかもと
思っていたのですが、ListViewのItem(項目)にあるTagのプロパティに番号を振ってあげて
件名をクリックしたときにそれと対となる配列を読み出すことでこの問題を解決できて
1.0の時に実装しようとしていた件名、差出人、日付、メールサイズでのソートが可能に
なりました。(ちなみにもう1つ未読・既読の表示がおかしくなるバグもありましたが
それに関しても何とか解決できました)

でもこのプログラムにはまだ問題があって、昨日実装した件名を複数選択して削除するという
機能でまたちょっとおかしな動き(指定したアイテムが削除されずにソート前の並び順で
メールデータが)になってしまっているので、とりあえずそれの修正が目下の課題点と
いったところです。

とりあえず1.1の更新はこの辺りで止めて、リリース後にまた製作開始する予定の1.2での
実装機能の単品サンプルとかを作っていこうかなぁ・・・と思っています。

Ak@Ne! Version 1.1のデモ(日付でのソート)


ツイートする このエントリーを含むはてなブックマーク [雑記]

リストから複数選択して削除する機能の実装 / 2009-03-10 (火)

1.1に変更したことでもう少しメールソフトとしての機能を改善しようと思い
実装を先延ばしにしてしまっていたリストビューの複数項目選択機能を
削除に関してだけ有効にしました。

あまりリストビューの複数項目の削除に関しての情報がなかったので、先延ばしに
していたのですが、Pascalなどで書いてあるサンプルコードをC#に書き換えて
複数選択項目の削除を実装することが出来ました。

項目を削除する際にfor文を初期値i=0でリストアイテムの数だけ順(i++)に回して
いたため、おかしな項目が削れていくという減少に見舞われていたけれど
これを初期値i=リストアイテム数で逆(i--)に回しながら選択項目を削除すると
書き直したら正しい動きをしました。

さらに追加機能としてリスト再描画の際にフォーカスが外れてしまうというバグも
一緒に直したので、1.0と比べたらだいぶメールソフトっぽくなったかなぁ・・・と
思ったりしています。

Ak@Ne! Version 1.1のデモ(スプラッシュウィンドウ)

Ak@Ne! Version 1.1のデモ(メール複数選択)


ツイートする このエントリーを含むはてなブックマーク [雑記]

1.02改め1.10としての公開 / 2009-03-03 (火)

当初1.02として作っていたAk@Ne!の新バージョンですが、前のコードからいろいろな
部分のコード修正をしたり、メールデータの仕様変更をしたりと変えてしまった
部分が結構あるので単なるリビジョンアップではやりすぎと思い、1.10として
公開をすることにしました。

昨日は追加で付けることにしたタスクトレイへの格納部分と無駄にメールリストを更新
していた部分のリスト更新を止めるための処理(といってもreturnで返すだけ)を
追加したり、さらにプログレスバーを通常メール送信(直接送信時は除く)の時に
表示できるようにしました。

一応追加する機能や修正点はテストも一応して公開できるようにはなっていますが
nMail.dllの正式版が公開されていないので、公開されてから1週間以内には
この新バージョンを公開する予定です。

Ak@Ne! Version 1.1の環境設定画面

Ak@Ne! Version 1.1のデモ


ツイートする このエントリーを含むはてなブックマーク [雑記]

無限ループ問題解決策 / 2009-02-28 (土)

少し前に解決したと言っていた起動時の読み込み無限ループ問題のちゃんとした
解決策が出来たので実装してテストを行ってうまく動くことを確認しました。

詳しいコードはバイナリ版と同時に公開予定のソースコード版の方を見てもらえば
分かるとは思うのですが、旧バージョンでは送信メールの打ち方によっては
本文の最後にデータの区切り文字がついてしまうというバグが存在しているため
その状態のデータを作ってしまうと次の起動時にそのメールのせいでデータが無限
ループに陥ってしまう問題を抱えていましたが、そうなってしまっているデータを
読み込んでもちゃんと読み込んでくれるように修正しました。

ただ、現行のメールデータをそのまま1.02に読み込ませようとしてもおかしくなるので
今回添付するメールデータ変換ツールでデータを変換して移行するという形に
なりますので、1.01のメールデータをそのまま1.02本体に入れないでください。

もう1つ修正したものとして、数日前にはうまく動かなかった暗号化機能を追加しました。
最初に見ていたMSDNのズバリ10行ではデータが合わないというエラーで悩んでいて
どうすれば良いかと考えていましたが、その後プログラムの参考サイトとして
使っているどぼんの.NET Tipsにある文字列の暗号化/復号化コードをベースに
サンプルプログラムを作って実行し、やりたいことがうまく動いてくれたので
例外処理(1.01からの移行後最初の実行で発生するため)を追加してAk@Ne!に組み込みました。

1.02で組み込みたかったことはひとまず組み込んだつもりですが、だいぶバグつぶしと
機能追加を行ったので、前回の文末にも書いた通り1.1としてリリースするかもしれません。