2008年12月7日日曜日

ベータ版

一時開発停止する前に、メッセージボックスを出さずに画面上に情報を表示するように改良した。
あとシミュレーションモードでは発注をしないとか(うそのデータを信じて発注したら悲しすぎるので)。

いずれにせよ、建て玉の情報は画面に表示されないので今の所建て玉リストとの併用が必要。
この点で手間取る人はいないだろうけれど、はっちゅう君プラスがレイアウトファイルを書き出せるようになっているのでそれも含めてアップしておいた。

めでだくベータ版だ!(休みなのでテストできていないけど)

それにしてもWPFのおかげで堅気のハッカー達がコンソールプログラムを呼吸するように書くのと同じのりでGUIを書く事ができる。趣味のプログラムという物がようやく現実的になったという事か。インターネットを見ていてもGUI込みでスケルトンやサンプルが盛んにやりとりされている。こういう状況が俺が高校の頃にあればなあ。

というわけで、メッセージボックスの代わりの情報表示はアニメーションによって時間をかけて消失するのだ。こんなのがフレーム描画とかグラフィック周りのアレコレの面倒を見ずに

TextBlock newText = new TextBlock() {
Text = DateTime.Now.ToString("[HH:mm:ss]") + str,
Style = (Style)mimohutaPanel.Resources["textStyleMessage"],
};

DoubleAnimationUsingKeyFrames relaxationAnimation = new DoubleAnimationUsingKeyFrames();
relaxationAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(1.0, TimeSpan.FromSeconds(0)));
relaxationAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(1.0, TimeSpan.FromSeconds(9)));
relaxationAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(0.0, TimeSpan.FromSeconds(10)));

Storyboard relaxationStoryBoard = new Storyboard();
relaxationStoryBoard.Children.Add(relaxationAnimation);
Storyboard.SetTarget(relaxationAnimation, newText);
Storyboard.SetTargetProperty(relaxationAnimation, new PropertyPath("Opacity"));

messageArea.Children.Insert(0, newText);
relaxationStoryBoard.Completed += delegate {
messageArea.Children.Remove(newText);
};
relaxationStoryBoard.Begin();

こんなコードで済むのだから良い時代すぎる。VisualBasicという道は間違っていなかったんだなあ、と実感する(できあがったのはC#だけど)。

体調

リボトリールのおかげか夜強いが自然な睡魔によって自然に寝られ、朝5~6時には起きられるようになった。しかし日中眠いのは変わらず。いつも夜まで待つと眠気が若干晴れてそれで少しだけ人間らしい生活ができていたのが、状態が改善しているにも関わらず生活の密度はめちゃくちゃ下がってしまった。

最近の開発も屍のように機械的にやっているだけだし。

でも、日が出ている間=活動時間という状態がとてもとても嬉しい。俺は吸血鬼なんじゃないか、とか、実は夜な夜な悪と闘っている記憶がないのではないだろうか、と思った事すらあったからなあ。

昨日は嫌な雨が降ったけど最近は天気が良いし、ただ生きている事が楽しい。