[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/07 13:31 / Filesize : 223 KB / Number-of Response : 993
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part53



1 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:11:11 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part52
pc12.2ch.net/test/read.cgi/tech/1238548552/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい

720 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:00:45 ]
Form2ClosedでForm1Closeして新しいClosedが発生するのがおかしいと言ってるの?
何がおかしいのかよくわからない

721 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:02:44 ]
>>719

まあ所持関係にあるForm同士として呼び出してるんだから
>    _form2.Show(this);

Form1閉じる→Form2閉じる
っていうのは標準動作として組み込まれてる

逆方向の動きを追加したい場合(Form2閉じる→Form1閉じる)は
標準の動作と競合しないようにしなきゃ不具合が起きて当たり前

FormClosed()の時点ではForm同士の所持関係を破棄していないようなので
無限ループが起きる
Disposed()の時点でForm同士の所持関係を破棄しきったので
やりたい動作が実現できる

722 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:07:42 ]
FormClosedイベントなんだから、「完全にフォームが閉じた後」に発生しないとおかしい
と言いたい訳か。
んで_form2が完全に閉じた後だから、_form2_FormClosedが呼ばれても子フォームのCloseが呼ばれるのはおかしい、と

723 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:15:06 ]
Close()をこうやって呼べばいけるっちゃいける。
this.BeginInvoke((MethodInvoker) (() => Close()));

親フォームが子フォームを閉じるための参照のコレクションを持ってて、
親フォームから登録を抹消するタイミングがFormClosedの後なんだろうな。

724 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:16:44 ]
>>722
>_form2が完全に閉じた後だから、_form2_FormClosedが呼ばれても子フォームのCloseが呼ばれるのはおかしい、と
いや、そこは必ずしもそうは思わないけど、>>717のコードの動作が「おかしい」と思う点は、
何度も言うけどOnFormClosedの呼ばれ方が、MSDNに書かれたFormClosedイベントの仕様に
反するように思える点。

725 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:17:10 ]
>>723
なんかそれタイミング次第で
うまく行ったり例外おきたり
危険な動作しそうな気がする

726 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:18:43 ]
例えば、Form.Show()は何度でも呼べるけど、
その都度Shownイベントが発生したりはしないよね。

727 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:19:47 ]
>>724
Formのオーナーシップの関係で
Formクラスから子FormのCloseが呼び出されるってことでしょ
何も反してないよ

728 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:23:40 ]
>>727
だから、FormClosedイベントの意味、つまり仕様は、「Closeメソッドが呼ばれました」
ではないよね。少なくともMSDNライブラリを詠む限り、そうは読み取れない。



729 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:26:58 ]
お前が明示的に呼んだときしかCloseメソッドが呼ばれないと思ってるということか

730 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:37:46 ]
>>729
こんなこと言いたくないが、馬鹿はすっこんでてくれよ。
二重の意味で日本語も読めないのかまったく……

731 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:40:59 ]
>>730
どう見てもお前の方が馬鹿だが

732 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:41:33 ]
むしろMSDライブラリを読み取れないレベルの馬鹿がやめた方がいい
お話になりません

733 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:59:09 ]
横やりだが>>728とかの言ってることは別にそんなおかしくないぞ。
Closeを何度呼ぼうが、実際に閉じたタイミングで一度だけ発生する
と期待するのは普通の感覚。
MSDNの説明も普通に読めばそうだと期待する。

一度しか呼ばれない、とは明記されてないし結局仕様なんだろうとは思うけど。


734 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:05:38 ]
1度テストしてみて理解できないようなら方法は無い

735 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:14:25 ]
MSDNのクラスのドキュメントって
クラス単体の動作を説明してるのが基本であって
フレームワークの中でそのクラスがどう扱われてるかは
オマケ程度にしか説明されていない

っていうことをわかって無いから的外れなこと言い出すんだよね

736 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:28:44 ]
>>735
ほほう、「的外れ」とは?
具体的に何がどう「的外れ」だ、と?

いや、無理しなくていいよ。
そんな自分の頭で理解していることを表現しているとは思えない、
悪いけど意味不明な文章を書いているようじゃたぶん正面からの回答は無理だと思うから。

しかし、別に初心者が悪いと思わんけど(誰だって最初はそうだし)
知りもしないことに口出しして挙句に相手をいきなり罵倒する奴っていうのは
迷惑以外の何者でもないな本当。

初心者どころか自分でイベントを生成するコードすら書いたことすらないのが、
言っちゃ悪いがミエミエなのに。
まあそれ以前に日本語もまともに読めていないようだけどw

2chでこんなこと言ってみても仕方ないのは分かっているが、あまりに腹が立ったのでね。

737 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 03:20:05 ]
ここでクダ巻いててもしょーもねーだろw

738 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 04:57:36 ]
長文書いたら負けですよ



739 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 06:37:29 ]
閉じられる理由位見ろ
_form2_FormClosed() の処理が
if (e.CloseReason == CloseReason.UserClosing)
  Close();
じゃないの点が問題なんだよ

何度も Form2 に FormClosed が送られてくるのも
あくまでも Form2.FormClosed イベントが終了していない段階で
Form1 を改めて閉じようとしているからループしてるに決まってるだろ

ユーザ操作以外ではどうせ親から Close が送られてくるから無視でいい

740 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 16:24:06 ]
Form 1 の中で生成した Form2 を破棄しようとして起きるんじゃないの

741 名前:デフォルトの名無しさん [2009/08/08(土) 18:41:56 ]
テキストボックスやパネルの境界線の色をグレーや薄いブルーなどにするにはどうすればいいですか?
また、
ラベルの上に小さめのテキストボックスを重ね、一つのコントロールにすることはできますか?

調べましたが分かりませんでした。
どなたか教えてください
(T_T;)。




742 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:08:28 ]
WPFをつかっとけ

743 名前:デフォルトの名無しさん [2009/08/08(土) 19:45:28 ]
>>742
WindowsフォームアプリケーションでWPFのコントロールを使えるんだっけ…。

744 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:50:05 ]
>>740
ユーザ要求により Form2 に WM_CLOSE が送られ
その処理中に Form2 から Form1 に WM_CLOSE が送られ
Form1 が閉じる際に子ウィンドウに対して WM_CLOSE が送られ
その処理中に Form2 から Form1 に WM_CLOSE が送られ……

WM_CLOSE から発生する一連の処理が終了してない間に
改めて WM_CLOSE を流したらループするだろ

745 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:51:38 ]
>>743
Windows Forms の編集時にツールボックス見たら
WPF 相互運用機能グループに ElementHost あるでしょ

746 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:56:57 ]
>>717の場合は、別にWin32のウィンドウメッセージの水準で連鎖が起こってるわけじゃなく、
あくまで.NET Frameworkの、いわゆる「イベントの連鎖」が起こってるだけ
(しかも仕様というよりバグが原因ぽい)だから、ちょっとその説明は違うと思うけど。

747 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:57:05 ]
なんでElementHost なんてわけわからん名前にしたんだ?

748 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:09:08 ]
至って普通の名前だと思うが・・・



749 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:11:01 ]
わけわからんって。
Element(UIElement) を Host するから ElementHost。


750 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:14:18 ]
WinFormだけでやるなら、
TextBoxやらはボーダーなしにして、
その親としてPanelを用意して、
そのPanelのPaintで枠を描画

751 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:15:37 ]
このスレはMS信者に乗っ取られているようだ
嘆かわしい

752 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:31:56 ]
まぁC#使ってる奴の99.9%がMS使いだと思うよ(´・ω・`)
だれかC#でiPhone開発してる人来ないかな・・・

753 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:34:52 ]
というかどこから >>751 が出てきたんだ?

754 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:44:26 ]
何かのキーワードに反応するボットじゃない?

755 名前:デフォルトの名無しさん [2009/08/08(土) 21:12:16 ]
>>750
PanelにPaintができるの?
枠線入りの画像をパネルの背景にするってこと?

756 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:17:07 ]
普通にPaintできるだろ
もしWPFを使うなら,テキストボックス一つ一つをElementHostでホストするようなことはお勧めしない
ある程度の大きい範囲で丸ごとWPFにしてElementHostに乗せる

757 名前:デフォルトの名無しさん [2009/08/08(土) 21:28:28 ]
>>755
具体的にどうやるの?
panel1_iventが出てきたけど…。

758 名前:デフォルトの名無しさん [2009/08/08(土) 21:45:35 ]
paintイベントって、formをloadしたときに自動で発生するの?



759 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:51:23 ]
描画が必要なとき
もちろん初めにフォームを表示するときも呼ばれるな

760 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:51:35 ]
くれくれしすぎは

761 名前:デフォルトの名無しさん [2009/08/08(土) 22:14:24 ]
もしパネルやテキストボックスがたくさんある場合、
それらの全ての四辺を描画するならば、
重たくなりそう。


762 名前:デフォルトの名無しさん [2009/08/08(土) 22:16:19 ]
>>756
ラベルやテキストボックスにbordercolorがないのが困る。

763 名前:デフォルトの名無しさん [2009/08/08(土) 22:17:19 ]
>>756
エレメントホストはどれくらい重たいのかな。
今からやってみよ。

764 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:01:35 ]
>>741
なんかまともにレスする奴がいないんで見てられないからレスするけど、
そんなのは普通にTextBoxを継承してカスタムコントロール作ってやればいいんだよ。
class TextBoxEx:TextBox
{
  public TextBoxEx()
  {
    BorderColor = Color.Red;
    BorderStyle = BorderStyle.FixedSingle;
  }

  [Category("Design"), DefaultValue(typeof(Color), "Red")]
  public Color BorderColor { get; set; }

  [Browsable(false),
  DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  public new BorderStyle BorderStyle
  {
    get { return base.BorderStyle; }
    set { base.BorderStyle = value; }
  }

765 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:02:47 ]
* 764続き *

  protected override void WndProc(ref Message m)
  {
    base.WndProc(ref m);
    const int WM_PAINT = 0xF;
    switch (m.Msg)
    {
      case WM_PAINT:
        using (Graphics g = CreateGraphics())
        {
          using (Pen pen = new Pen(BorderColor))
          {
            Rectangle rect = ClientRectangle;
            rect.Width -= 1; rect.Height -= 1;
            g.DrawRectangle(pen, rect);
          }
        }
        break;
    }
  }
}

766 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:09:41 ]
>>765
細かいことだけど、WndProcよりもOnPaintのオーバーライドのほうが簡潔では?
もちろんsuper.OnPaint呼ぶ手間含んで。

767 名前:デフォルトの名無しさん [2009/08/08(土) 23:09:50 ]
>>765
すごい。ありがとうございます。がんばって解読します。
この継承クラスをまた継承したら、命令を抑えてコーディングできますね。

※ なんで継承したら、bodercolorが出てくるんだろう---。


768 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:10:55 ]
>>766
やってみればわかるよ。



769 名前:デフォルトの名無しさん [2009/08/08(土) 23:12:08 ]
例えば50個のテキストボックスを表示させ、
それら全てに色枠線を描いたら、重たいのかな。

770 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:30:00 ]
>>768
ごめんなさい。言うとおりだった。

ググったらこんな記述も見つけた。PaintイベントがないならOnPaintもなくて当然か。
msdn.microsoft.com/ja-jp/library/system.windows.forms.textboxbase.paint.aspx
> TextBoxBase.Paint イベント
> コントロールが再描画されると発生します。このクラスでは、このイベントは使用されません。

771 名前:デフォルトの名無しさん [2009/08/08(土) 23:35:45 ]
panelならOnpaintも可能なんだろか。

772 名前:デフォルトの名無しさん [2009/08/09(日) 07:46:49 ]
>>765
さんの記事に、
「using (Pen pen = new Pen(BorderColor)) 」
という行がありますが、using句は名前空間の定義のみに使用するわけではないのですか?
どういうケースでusing句を指定するケースがあるのでしょうか。

773 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 07:47:50 ]
msdn.microsoft.com/ja-jp/library/yh598w02.aspx
MSDNくらい読めよクソタコ

774 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 07:54:42 ]
>>765
using (Graphics g = CreateGraphics())
{
 using (Pen pen = new Pen(BorderColor))
 {
 }
}

だとネストが深くなるから

using (Graphics g = CreateGraphics())
using (Pen pen = new Pen(BorderColor))
{
}

の方がいいな。

775 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 07:56:28 ]
}それならこれでいいだろ
using (Graphics g = CreateGraphics(), Pen pen = new Pen(BorderColor))


776 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 09:16:17 ]
>>775
そうやって並べると見辛くないか? >>774でいいじゃん

777 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 10:00:28 ]
わざわざ1行にする意味ないな

778 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 10:26:24 ]
「黄金分割」<副題> ピラミッドから ル・コルビュジェまで 柳亮著 美術出版社
1965年の出版でしかも純粋な美術書。でも、なぜフィボナッチ数の課題を
出されるのかピンとこないプログラマは一度目を通してみるとよい。



779 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:14:40 ]
黄金分割なんてうさんくさいと思うのは俺だけか?

780 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:15:28 ]
みんなが黄金といっているのだから黄金なんだろう

781 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:23:24 ]
僕には黄金はまだきついので聖水でいいです

782 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:30:33 ]
名前が胡散臭いだけで特別なものでも不可思議なものでもないけどね。

783 名前:778 mailto:sage [2009/08/09(日) 17:47:10 ]
>>779すみません。これ誤爆でした。

784 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:35:56 ]
>>775
コンパイル


785 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:08:36 ]
>>765
こうやると枠線だけ書いて、中の文字塗り潰してしまうイメージあったけど
これでいけるんだ

勉強になりました

786 名前:デフォルトの名無しさん [2009/08/09(日) 19:13:38 ]
このやり方で重たくならないならば、俺もやりたい。
みんな、なんでそんなに詳しいの?
頭脳を分けてほしいよ。

787 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:14:55 ]
もっと簡単にできたとおもうが。

788 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:23:35 ]
listviewのcustomdrowめんどくさー



789 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:27:50 ]
ユーlistviewつくっちゃいなYO!

790 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:33:28 ]
customdrow?


791 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:37:31 ]
カスタムドローで合ってるぞ
オーナードローじゃないぜ

792 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:44:39 ]
dr o w?

793 名前:デフォルトの名無しさん [2009/08/09(日) 21:05:54 ]
>>784
このロジックはどこに書くの?
デザイナーズcs?
それとも本体の方?

794 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 21:39:42 ]
いろいろ作ったらさ
SS見せてほしいんだけどw

795 名前:デフォルトの名無しさん [2009/08/09(日) 22:21:54 ]
>>794
SSってなに?

796 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:24:17 ]
Secret Service

797 名前:デフォルトの名無しさん [2009/08/09(日) 22:26:35 ]
SQLサーバーを借りてるんですが、直にSQLを書くのと、linqを使うのと、どちらがメリットが高いですか?

798 名前:デフォルトの名無しさん [2009/08/09(日) 22:28:15 ]
ボーリングのスコア表をC♯で作りたいんだけど、
膨大な数のテキストボックスを早く負担なく描くには何かいいテクニックはありますか?



799 名前:デフォルトの名無しさん [2009/08/09(日) 22:29:39 ]
>>798
なんでボーリングスコア表なんていんねん。

800 名前:デフォルトの名無しさん [2009/08/09(日) 22:31:47 ]
>>798
マウスを使って一つずつペタペタ描く。
それしかないだろ。
本を見てもそう書いてた。
間違っていたらごめん。

801 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:40:38 ]
手っ取り早いのはGirdじゃね

802 名前:デフォルトの名無しさん [2009/08/09(日) 22:45:24 ]
>>801
ジードって読むの?
初めて聞きました。
詳しく教えてください。
僕もマウスて配置していてくたびれました。

803 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:47:17 ]
1文字間違えるのが流行りなのか?
DateGridView

804 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:48:40 ]
>>800
その本は何個のテキストボックスをポトペしていた?
10個超えてたらダウト

805 名前:デフォルトの名無しさん [2009/08/09(日) 22:59:55 ]
>>804
5つのコマンドボタン。
揃える技は書いてたけど、大量描画についてはコメントなし。

806 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 00:37:08 ]
ストライクとかのアイコンはどうすんの?
結局自前で描画する予感
なら1枚絵で作ってしまえ!とか

807 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 00:42:53 ]
DataGridViewはアイコン置けるよー

808 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:34:20 ]
複数の定数を定義したクラスの中に存在する、
定数に要素に全てアクセスするにはどうすればよいでしょうか?
for each 的なコードがあればお教えください。

class TestClass
{

  public const string const_test_1 = "aaa1";
  public const string const_test_2 = "aaa2";
  public const string const_test_3 = "aaa3";
  public const string const_test_4 = "aaa4";
}





809 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:39:29 ]
設計から見直せタコ

810 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:41:46 ]
>>808
案1 人手で全て列挙を行う
案2 コンパイラの忠告を無視して後々のメンテナンスを全て投げきってもいいならリフレクション

後で人手で行った場合の数倍のツケを支払う覚悟があるなら
機械的にリフレクションを通してもいいかも

811 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:41:54 ]
配列で用意しとけよそんなん

812 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:47:17 ]
>>810
案2の方法をお教えください。



813 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:48:25 ]
>>812
c# リフレクション フィールド 列挙
で出てきたの↓
dobon.net/vb/dotnet/programing/typegetmembers.html

814 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:50:23 ]
>>813
ありがとうございました。

815 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:11:58 ]
リフレクションなんか馬鹿に勧めるな馬鹿。

816 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:29:09 ]
>>815
馬鹿のお前がいっても説得力がない。

817 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:31:24 ]
リフレクション使って全部実行時に行う必要もなくて

一旦リフレクション使って集計して
その後手作業でソース起こしてもいいかもね

818 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 07:04:01 ]
yieldでよくね?



819 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 09:10:28 ]
>>817
これはよくやる
自動生成しちゃえばいいんだよね

820 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:09:01 ]
リフレクションとか難しすぎて頭おかしくなりそう






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<223KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef