C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 >>
■12214  Re[5]: データ型について
□投稿者/ ゴン太 -(2008/01/05(Sat) 06:37:06)
    No12210 (Tom Yama さん) に返信
    > データ自身が、自分の型を知っているのです。
    具体的にどのようなことなのでしょうか?
記事No.12198 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12215  Re[6]: データ型について
□投稿者/ やじゅ -(2008/01/05(Sat) 08:46:07)
>
    2008/01/05(Sat) 08:58:09 編集(投稿者)

    No12214 (ゴン太 さん) に返信
    > ■No12210 (Tom Yama さん) に返信
    >>データ自身が、自分の型を知っているのです。
    > 具体的にどのようなことなのでしょうか?
    >

    変数を宣言するためには、明確な型を指定していたりしたけど
    代入する値(データ自身)の型から、変数の型を決定させるのです。


    var x = 1;
    var y = "string";
    var z = 1.123;
    以上のコードは、コンパイラが自動的に以下のように解釈してくれます。

    int x = 1;
    string y = "string";
    double z = 1.123;

    想像がつくと思いますが、
    var x;
    のように代入がない宣言はデータ自身の型が不明なので許されません。


    どのように型推論をしているのかは、結構むずかしいです。
    「型推論機構」で検索すればいいと思います。

    型推論機構の実装
    http://www.sato.kuis.kyoto-u.ac.jp/~igarashi/class/isle4/text/miniml011.html#toc13
    型代入を遅延する最適化型推論アルゴリズム
    http://www.nue.riec.tohoku.ac.jp/jssst2005/papers/05097.pdf
記事No.12198 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12228  Re[7]: データ型について
□投稿者/ NyaRuRu -(2008/01/05(Sat) 15:55:56)
    2008/01/05(Sat) 16:00:14 編集(投稿者)
    No12215 (やじゅ さん) に返信
    > 2008/01/05(Sat) 08:58:09 編集(投稿者)
    >
    > どのように型推論をしているのかは、結構むずかしいです。
    > 「型推論機構」で検索すればいいと思います。

    ラジカルな型推論を行う言語については確かに難しいことをやっていますが,C# 3.0 の var の説明としてその資料を挙げられているのであれば,ちょっとちぐはぐかもですね.
    C# の var で行っているのは,単に右辺の型をそのまま使うと言うだけで,推論といえるほど複雑なことをやっているわけではありません.資料に挙げられているような複雑な話は一切ありません.
    var が使うルールなんて,せいぜい「右辺と左辺の型は等しい (代入に副作用がない)」ぐらいです.
    (ただし var という変数名を使っていた既存のコードを維持するためのルールはちょっと複雑)

    というわけで,var のアルゴリズムについて知りたいという人に,『「型推論機構」で検索』して出てくるような資料を読むのをすすめるのは,ちょっとやりすぎかなと.プログラミングの世界では,実際に複雑な推論を駆使する言語/テクニックもあって,そっちばっかりヒットしている気がします.
記事No.12198 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12222  Re[5]: データ型について
□投稿者/ Tom Yama -(2008/01/05(Sat) 12:23:45)
    No12214 (ゴン太 さん) に返信
    >>>何と説明したらよいのかわかりませんが、例えばrubyなどはデータ型を宣言しなくても
    >>>よいですよね。これらの言語はどのようにデータ型を判別するようにできているのでしょうか?
    >> データ自身が、自分の型を知っているのです。
    >具体的にどのようなことなのでしょうか?
    a. データ自体の値と、そのデータの型を示すデータへのポインタとが、対になって存在しているのです。

    # 上記の方が実装が簡単だからこっちだろう、と思って、断定してしまいましたが、
    b. そのデータを指す変数が、そのデータの型を示すデータへのポインタも保持する。
    という、実装方法もあります。

    # a案は、他言語で書かれたプログラムとの間で配列をやり取りするのに、問題があるので、
    # 実際の実装は、多分、b案かな?
記事No.12198 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12250  Re[4]: データ型について
□投稿者/ よねKEN -(2008/01/06(Sun) 05:09:01)
    > 何と説明したらよいのかわかりませんが、例えばrubyなどはデータ型を宣言しなくても
    > よいですよね。これらの言語はどのようにデータ型を判別するようにできているのでしょうか?

    適当な仮想言語で考えてみましょう。

    i = 1;
    f = 6.5;
    s = "あいう";
    o = new Animal();

    のような文法で記述できるとしましょうか。
    ここで登場する左辺は変数です。
    この仮想言語では数値であり小数でなければ整数、それ以外の数値なら小数、
    ""で括られていれば文字列、new 〜の場合は〜のオブジェクトと決めてあるとします。
    iは整数型、sは文字列型、oはAnimal型と判断できます。
    つまり、値を区別できるように言語を構成する要素を設計してあるからです。

    ただ、この場合、変数iは4バイトの整数型なのか8バイトの整数型なのか?といった区別ができませんので、
    そうすると整数型は「4バイト固定」であるとか「数値の大小により割り当てるバイト数を決定する」とか
    判定のルールが必要になりますね。言語仕様により動的に型を決定するルールを用意するのか、
    はたまた、プログラマ自身に宣言させることで静的に決まるようにするのか、
    それは言語次第というわけです。
記事No.12198 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12231  MouseWheelイベントがつかえない
□投稿者/ のぶ -(2008/01/05(Sat) 17:01:21)

    分類:[.NET 全般] 

    立て続けにに質問すいません。

    今、C#2005(Express)でユーザーコントロールを作成しています。
    で、VScrollBar を使用してコントロールに表示する内容を変更しようと考えているのですが、
    ホイールのスクロールを検知する方法がわかりません。

    web上でいろいろと調べてみると MouseWheel イベントを使用するようなことが書かれていますが
    イベント一覧に上記のようなイベントは出てきません。

    オブジェクトブラウザでは確かに

    >>public event System.Windows.Forms.MouseEventHandler MouseWheel
    >> System.Windows.Forms.Control のメンバ
    >>
    >>概要:
    >>コントロールにフォーカスがあるときにマウス ホイールが動くと発生します。

    となっていますが、どうすればイベントとして使用できるのかがわかりません。

    よろしくお願いします。
親記事 /過去ログ26より / 関連記事表示
削除チェック/

■12234  Re[1]: MouseWheelイベントがつかえない
□投稿者/ επιστημη -(2008/01/05(Sat) 17:48:54)
>
    2008/01/05(Sat) 17:49:40 編集(投稿者)

    たとえば:

    public Form1() {
    InitializeComponent();
    vScrollBar1.MouseWheel += this.OnWheel; // ←コレ追加
    }

    // Wheeelが回ったら
    private void OnWheel(object sender, MouseEventArgs e) {
    なんかする
    }

記事No.12231 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12258  Re[2]: MouseWheelイベントがつかえない
□投稿者/ のぶ -(2008/01/06(Sun) 23:25:25)
    No12234 (επιστημη さん) に返信
    > 2008/01/05(Sat) 17:49:40 編集(投稿者)
    >
    > たとえば:
    >
    > public Form1() {
    > InitializeComponent();
    > vScrollBar1.MouseWheel += this.OnWheel; // ←コレ追加
    > }
    >
    > // Wheeelが回ったら
    > private void OnWheel(object sender, MouseEventArgs e) {
    > なんかする
    > }

    ばっちり出来ました!
    見えないイベントがあるなんて知りませんでした・・・
    ありがとうございます。m(__)m
記事No.12231 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12232  Re[1]: MouseWheelイベントがつかえない
□投稿者/ Azulean -(2008/01/05(Sat) 17:34:40)
    No12231 (のぶ さん) に返信
    > web上でいろいろと調べてみると MouseWheel イベントを使用するようなことが書かれていますが
    > イベント一覧に上記のようなイベントは出てきません。
    表示されないように設定されているためです。
    使用するためにはコードエディタからイベントを設定する必要があります。

    コンストラクタのInitializeComponentの後あたりに、MouseWheelのイベントハンドラを登録するコードを書いてください。
    ("MouseWheel += "と入力後、Tabキーを2回押すと、イベントハンドラも生成してくれます)

    public UserControl1()
    {
    InitializeComponent();
    MouseWheel += new MouseEventHandler(UserControl1_MouseWheel);
    }

    void UserControl1_MouseWheel(object sender, MouseEventArgs e)
    {
    //TODO: ここで何かする
    }

    参考(Controlのメタデータ)
    //
    // 概要:
    // コントロールにフォーカスがあるときにマウス ホイールが動くと発生します。
    [Browsable(false)]
    [EditorBrowsable(EditorBrowsableState.Advanced)]
    public event MouseEventHandler MouseWheel;
記事No.12231 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12259  Re[2]: MouseWheelイベントがつかえない
□投稿者/ のぶ -(2008/01/06(Sun) 23:27:56)
    No12232 (Azulean さん) に返信
    > ■No12231 (のぶ さん) に返信
    >>web上でいろいろと調べてみると MouseWheel イベントを使用するようなことが書かれていますが
    >>イベント一覧に上記のようなイベントは出てきません。
    > 表示されないように設定されているためです。
    > 使用するためにはコードエディタからイベントを設定する必要があります。
    >
    > コンストラクタのInitializeComponentの後あたりに、MouseWheelのイベントハンドラを登録するコードを書いてください。
    > ("MouseWheel += "と入力後、Tabキーを2回押すと、イベントハンドラも生成してくれます)

    ばっちり出来ました!
    なんで、わざわざ見えなくしているのでしょうかねぇ・・・

    Tab 2回押しの機能は知りませんでした。
    ちょっと感動(笑)

    ありがとうございました。m(__)m

記事No.12231 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12251  フォントが等幅かどうか調べたい
□投稿者/ Hirotow -(2008/01/06(Sun) 14:10:42)

    分類:[.NET 全般] 

    先日のバイナリエディタの続きなのですが、
    TextBoxを使用した処理だとあまりに重過ぎるようなので全体的にオーナードローで再作成したいと思っています。
    そこでフォントを自由に変えられるようにしたいのですが、プロポーショナルなフォントを指定されると困ります。
    そこで設定可能なフォントを等幅フォントのみに制限したいのですが検索しても見つかりません。
    どなたかご存知の方がいましたらご協力をお願いいたします。
親記事 /過去ログ26より / 関連記事表示
削除チェック/

■12252  Re[1]: フォントが等幅かどうか調べたい
□投稿者/ やじゅ -(2008/01/06(Sun) 14:37:50)
>
    No12251 (Hirotow さん) に返信
    > そこで設定可能なフォントを等幅フォントのみに制限したいのですが検索しても見つかりません。
    > どなたかご存知の方がいましたらご協力をお願いいたします。

    フォント名だけでは判断出来かねますからね、
    しいて言えば、特定の文字の大きさを調べて同一なら等幅と判断するくらいですかね。
    特定の文字が何なのかは、いろいろな文字で調べてみるといいのでは。

    文字列を描画したときの大きさを計測する
    http://dobon.net/vb/dotnet/graphics/measurestring.html
記事No.12251 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12254  Re[2]: フォントが等幅かどうか調べたい
□投稿者/ Hirotow -(2008/01/06(Sun) 15:45:29)
    以下のようなコードにしたらサイズ調整はうまくいきました。
    
    tlpMain.RowStyles[0].Height = Font.Height;
    pbxHeader.Image = new Bitmap(pbxHeader.Width, pbxHeader.Height);
    gHeader = Graphics.FromImage(pbxHeader.Image);
    tlpMain.ColumnStyles[0].Width =
    	gHeader.MeasureString("#00000000#", Font, 1024, StringFormat.GenericDefault).Width;
    tlpMain.ColumnStyles[1].Width =
    	gHeader.MeasureString("#00#01#02#03#04#05#06#07#08#09#0A#0B#0C#0D#0E#0F", Font, 1024, StringFormat.GenericDefault).Width;
    pbxLineNo.Image = new Bitmap(pbxLineNo.Width, pbxLineNo.Height);
    gLineNo = Graphics.FromImage(pbxLineNo.Image);
    pbxHexView.Image = new Bitmap(pbxHexView.Width, pbxHexView.Height);
    gHexView = Graphics.FromImage(pbxHexView.Image);
    pbxTextView.Image = new Bitmap(pbxTextView.Width, pbxTextView.Height);
    gTextView = Graphics.FromImage(pbxTextView.Image);
    
    リンク先が非常に参考になりました。
    ありがとうございます。
    ただどのタイミングで再描画を呼び出すべきかいまいちわかりませんのでご教授をいただけると幸いです。
    
    ■No12252 (やじゅ さん) に返信
    > ■No12251 (Hirotow さん) に返信
    >>そこで設定可能なフォントを等幅フォントのみに制限したいのですが検索しても見つかりません。
    >>どなたかご存知の方がいましたらご協力をお願いいたします。
    > 
    > フォント名だけでは判断出来かねますからね、
    > しいて言えば、特定の文字の大きさを調べて同一なら等幅と判断するくらいですかね。
    > 特定の文字が何なのかは、いろいろな文字で調べてみるといいのでは。
    > 
    > 文字列を描画したときの大きさを計測する
    > http://dobon.net/vb/dotnet/graphics/measurestring.html
記事No.12251 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12256  Re[3]: フォントが等幅かどうか調べたい
□投稿者/ やじゅ -(2008/01/06(Sun) 18:38:18)
>
    No12254 (Hirotow さん) に返信
    > ただどのタイミングで再描画を呼び出すべきかいまいちわかりませんのでご教授をいただけると幸いです。
    >

    普通に考えれば、入力後だと思います。
    どのように作成されているのかイメージ出来ないので、一般的な返答しか出来ないです。
記事No.12251 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12257  Re[4]: フォントが等幅かどうか調べたい
□投稿者/ Hirotow -(2008/01/06(Sun) 22:30:08)
    こんな感じのものです。
    http://mui-style.net/data/BinaryEditor_Mikansei_A.zip

    現状では描画が遅すぎて使い物になりませんが。
    No12256 (やじゅ さん) に返信
    > ■No12254 (Hirotow さん) に返信
    >>ただどのタイミングで再描画を呼び出すべきかいまいちわかりませんのでご教授をいただけると幸いです。
    >>
    >
    > 普通に考えれば、入力後だと思います。
    > どのように作成されているのかイメージ出来ないので、一般的な返答しか出来ないです。
記事No.12251 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12261  Re[5]: フォントが等幅かどうか調べたい
□投稿者/ やじゅ -(2008/01/07(Mon) 00:05:36)
>
記事No.12251 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12265  Re[6]: フォントが等幅かどうか調べたい
□投稿者/ Hirotow -(2008/01/07(Mon) 01:12:06)
    GUIスレッドの処理でCPU使用率が2桁いくと落ち着かない^^
    ダブルバッファ化とかで多少は改善されてはいてもやっぱり遅い。
    Starlingとかだとこの1/5くらいの負荷なのにorz

    表示機能は(負荷の高さを除けば)ほぼ完成したので後は編集機能だけ。
    これもある程度まではテキストボックスベースで実装できているのでコピペして追記^^。
    あとテストアプリはD&Dで読むように変更しました。
    http://mui-style.net/data/BinaryEditor_Mikansei_B.zip
    No12261 (やじゅ さん) に返信
    > ■No12257 (Hirotow さん) に返信
    >>こんな感じのものです。
    >>http://mui-style.net/data/BinaryEditor_Mikansei_A.zip
    >
    > 表示だけなら遅いように思えなかったわけですが・・・
    > 入力して影響するところだけ描画しなおせばいいんじゃないですか
    >
記事No.12251 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12178  時間を表示
□投稿者/ プロー -(2008/01/02(Wed) 23:17:44)

    分類:[C#] 

    C# windowsアプリです。
    初心者です

    画面上にあるボタンを押すと画面上に残り時間が表示されて時間が終わった後になんらかの結果を表示するものを
    作成してみたいのですが、時間のカウントをどんどん減らすというものはどう書いたらいいのでしょうか

    お願い致します。
親記事 /過去ログ26より / 関連記事表示
削除チェック/

■12179  Re[1]: 時間を表示
□投稿者/ よもやま -(2008/01/02(Wed) 23:49:12)
>
    No12178 (プロー さん) に返信
    > C# windowsアプリです。
    > 初心者です
    >
    > 画面上にあるボタンを押すと画面上に残り時間が表示されて時間が終わった後になんらかの結果を表示するものを
    > 作成してみたいのですが、時間のカウントをどんどん減らすというものはどう書いたらいいのでしょうか
    >
    > お願い致します。
    どう書けばよいか?
    まず、やりたい事を分解してみてください。
    100という数字を時間の経過(何秒ごとか、ミリ秒単位かなど)で0までカウントダウンさせたいとか

    分解が甘くて抽象的過ぎると
    ブローさんが望む回答はでてこないと思います。
記事No.12178 のレス /過去ログ26より / 関連記事表示
削除チェック/

■12181  Re[2]: 時間を表示
□投稿者/ やじゅ -(2008/01/03(Thu) 00:26:22)
>
    No12179 (よもやま さん) に返信
    > ■No12178 (プロー さん) に返信
    >>C# windowsアプリです。
    >>初心者です
    >>
    >>画面上にあるボタンを押すと画面上に残り時間が表示されて時間が終わった後になんらかの結果を表示するものを
    >>作成してみたいのですが、時間のカウントをどんどん減らすというものはどう書いたらいいのでしょうか
    >>
    > まず、やりたい事を分解してみてください。
    >

    お正月なのでサービスです。

    プローさんの頭の中には、画面と動作がイメージ出来ているけど
    実現する方法がイメージ出来ない。

    ある程度プログラム出来ると脳内で出来るけど、まだそれが出来ない内は
    よもやまさんが仰るように、一つ一つ分解して考える。

    第10回 タイマー
    http://homepage1.nifty.com/rucio/main/shokyu/jugyou10.htm


    画面イメージ
     フォーム
     開始ボタン
     残り時間(ラベル)
     なんらかの結果表示用(テキストボックス)

    動作イメージ
     開始ボタン押した(Clickイベント)
     時間のカウントを減らす(Timerイベント)
     時間が終わったらなんらかの結果を表示

    処理イメージ
     開始ボタン(Clickイベント内)
     ↓ 
     時間のカウントの初期値をセット
     ↓ 
     タイマーイベント開始

     タイマーイベント(Timerイベント内)
     ↓
     時間のカウントを減らす
     ↓
     時間のカウントが0か判定
     ↓
     終わったなら、タイマーイベント終了
     なんらかの結果を表示
記事No.12178 のレス /過去ログ26より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 >>

ヒット件数が多いので過去ログ1〜26 までの検索結果 / 過去ログ27からさらに検索→

パスワード/

- Child Tree -