studio Odyssey



スタジオ日誌

日誌的なもの

2010.05.07

DX3のセッションをやって

Written by
しゃちょ
Category
C#
TRPG
プログラム
Tags

 ダブルクロス3rdのセッションをしたんですよ。

 もうね、アレですよ、ダイスの数とかね、数えられない。無理。

 もうね、プログラムでサポートつけないとだめよ。オンラインだからさ、その気になれば何でも出来ちゃうんだけどさ、今までは、やらないようにしていたのね。というのも、そういう面倒くさい事も含めて、TRPGって楽しいじゃん。

 でも、DX3は、アレだ。ダイスの数が数えられない。ただでさえ、計算アレなのに。

 もうね、禁を破りますよ。楽しくプレイするためになら、ある程度はコンピューターにサポートしてもらってもいいんじゃないかなって。

続きを読む <DX3のセッションをやって>

2009.09.28

 さて、そんな訳で、時間ができたので、VisualBasic PowerPacksに入っている、DataRepeaterコントロールのお話をしよう。
 別に興味ない人は読み飛ばし推奨。

 さて、このコントロール、まぁ、検索でここにたどり着いた人たちは言うまでもない訳で、そういうコントロールです。どういうだよ。っていうか、説明が面倒くせぇよ、説明なしな!

 で、このコントロール、結構、癖があって使いにくいです。
 データバインドされたコンボボックスのデータを表示すると、他の行のコントロールと連動して表示がかわっちゃうとか、DataTableバインドしていて、Not Nullなカラムがあると、次の行に行ったときに、DataErrorが起こるとか、制御がすげぇ面倒くさい。

 とりあえず、使う上で、いくつかのポイントをあげておきます。

  • リストに対してバインドされたコンボボックスは、手動でやるしかない。
  • はっつけたコントロールの、DataBindingsプロパティの要素の一部はコピーされない。
  • ItemTemplateのValidatingは、複数回呼ばれることがあるので、気をつけないとだめ。
  • 追加のためのメソッドであるAddNewは、結構、使いづらい。
  • データバインド後に、ResetBindingsを呼ばないと、いろいろ変なことになったりする。

 みたいなー。

 さて、そんなわけで、簡単なコードをおいつつ、見ていきましょう。

続きを読む <DataRepeaterコントロールのコード>

2009.02.25

 ああああああああああああああ!

 前の俺の投稿で、「DataRepeaterのイベントのコピーは、なんかちょっと違う」的なとを書いたが、判明した。
 つか、中身覗いたんですけどね。

 中で、イベントをコピーするところがあるのですが、これ、コピーの対象が、this.Eventsなんですよ。

 なんで、
public event EventHandler Sample;  みたいなイベントは、コピーされないんですよ!

 なるほど、自作のイベントはほとんどがこの書き方で手抜きしとるわいな。
 そりゃー、コピーされないわ。

 と、いうことで、このコードを、 private static readonly object EventSample = new object();

public event CancelEventHandler Sample
{
    add
    {
        base.Events.AddHandler(EventSample, value);
    }
    remove
    {
        base.Events.RemoveHandler(EventSample, value);
    }
}
 とすると、コピーされるようです。

 げー。
 イベント周り、書き直ししないとだめかー。
 まぁ、それでもDataRepeaterが使えるようになるというのは、強力だしなぁ...

 やるかなぁ...(でも、フォーカスが当たった時に、ボタンが表示される部分があるんだけど、ここもスクロール時に再描画されないからなぁ...どうしようか)

 複数人でメンテしようぜという話ですが、基本的に、このblogは我が道を行き続けるので、俺は仕事の話も書くし、プログラムの話も書くのです。
 つーか、忘れないようにメモなんですけど。

 新規開発プロジェクトのアーキタイプを作っていて、帳票系のDataSetを作っていたのですが、速度的なパフォーマンスはあとでチューニングすればいいとして、どうすれば簡単にできるかなあと考えていたんですけど、よくよく考えてみれば、DataColumnのExpressionでなんとかならないのかねと。
 帳票ツールはActiveReportsなので、ちゃんとリレーションされた更新用のDataSetがそこにあるんだから(TableAdapterManagerつかってる)、これを再利用できんもんかと。

 MSDNを見ると、Expressionはちゃんと、リレーションの親子を、ParentとChildで見られるのね。
 ちゅーわけで、サンプルコード。

 キーワードは、DataSet DataColumn Expression リレーションあたりか。
 あれ、これ、blogのキーワードにいれると、どうなるんだろう。

続きを読む <このblogは、相変わらず我が道をいくのです>

前の10件 1  2