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#だけど)。

0 件のコメント: