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

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

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

全過去ログを検索

<< 0 >>
■21399  Re[7]: エラー処理  当該testboxにforcus
□投稿者/ 鶏唐揚 -(2008/07/01(Tue) 16:42:00)
    No21397 (刈歩 菜良 さん) に返信
    > 横から補足です。
    あぁ、フォーカス云々を忘れていましたorz
    補足ありがとうございます。
    
    ついでに補足後のコード
    
    int age;
    
    if(int.TryParse(textBox4.Text, out age))
    {
        //OK、ageには既に変換後の数値が入っている
    }
    else
    {
        //数値に変換できないのでNG
        MessageBox.Show("項目ageの入力が不正です。");
        textBox4.Focus();
    }
記事No.21379 のレス /過去ログ41より / 関連記事表示
削除チェック/

■29620  Re[1]: 構造体の引数渡しについて
□投稿者/ .SHO -(2008/12/11(Thu) 16:40:58)
    No29619 (tamaboyo さん) に返信

    基本的には C# にポインタ渡しはありません。
    構造体ではなくクラスを使用してください。
記事No.29619 のレス /過去ログ53より / 関連記事表示
削除チェック/

■55043  Re[3]: Windows.Forms.Timerの動きについて
□投稿者/ piroyuki -(2010/11/15(Mon) 18:09:52)
    No55042 (Hongliang さん) に返信
    > 同一スレッドですよ。
    > ただ、MessageBox.Show がダイアログを閉じるまで返ってこないからと言って他の処理がすべてブロックされるわけではありません。
    > Paint イベントも UI スレッドで動きます。もしメッセージボックスの表示中にスレッドが占有されるなら、Paint イベントを起こせなくなりますよね? そうなると表示元のフォームは画面更新できず、メッセージボックスを掴んで動かしたらあっという間に表示がぼろぼろになるはずですが、実際にはそんなことありません。
    
    マサヤさん、 Hongliangさん、回答ありがとうございます。
    >もしメッセージボックスの表示中にスレッドが占有されるなら、Paint イベントを起こせなくなりますよね?
    さきほどの実験2の中の、別フォームのLoadイベントに永久ループをいれたところ、確かにコンソール出力はなくなりました。
    
    Windows.Forms.Timerでなく、Threadタイマにしたらどうなるか興味が湧いてきたので、また試してみます。
    Threadタイマは別スレッドなので、おそらくApplication.DoEvents();がなくてもコンソール出力はされるのでは?と予想します。
    
    public partial class aaa : Form
        {
            public aaa()
            {
                InitializeComponent();
            }
    
            private void aaa_Load(object sender, EventArgs e)
            {
                while (true)
                {
                    //Application.DoEvents();	//これを有効にすると、占有を逃れられるためコンソール出力はされる
                }
            }
        }
    
記事No.55039 のレス /過去ログ92より / 関連記事表示
削除チェック/

■55045  Re[4]: Windows.Forms.Timerの動きについて
□投稿者/ piroyuki -(2010/11/15(Mon) 18:23:19)
    No55043 (piroyuki さん) に返信
    > ■No55042 (Hongliang さん) に返信
    >>同一スレッドですよ。
    >>ただ、MessageBox.Show がダイアログを閉じるまで返ってこないからと言って他の処理がすべてブロックされるわけではありません。
    >>Paint イベントも UI スレッドで動きます。もしメッセージボックスの表示中にスレッドが占有されるなら、Paint イベントを起こせなくなりますよね? そうなると表示元のフォームは画面更新できず、メッセージボックスを掴んで動かしたらあっという間に表示がぼろぼろになるはずですが、実際にはそんなことありません。
    >
    > マサヤさん、 Hongliangさん、回答ありがとうございます。
    > >もしメッセージボックスの表示中にスレッドが占有されるなら、Paint イベントを起こせなくなりますよね?
    > さきほどの実験2の中の、別フォームのLoadイベントに永久ループをいれたところ、確かにコンソール出力はなくなりました。
    >
    > Windows.Forms.Timerでなく、Threadタイマにしたらどうなるか興味が湧いてきたので、また試してみます。
    > Threadタイマは別スレッドなので、おそらくApplication.DoEvents();がなくてもコンソール出力はされるのでは?と予想します。
    >
    > public partial class aaa : Form
    > {
    > public aaa()
    > {
    > InitializeComponent();
    > }
    >
    > private void aaa_Load(object sender, EventArgs e)
    > {
    > while (true)
    > {
    > //Application.DoEvents(); //これを有効にすると、占有を逃れられるためコンソール出力はされる
    > }
    > }
    > }
    >


    下記のコードを実施したところ、Application.DoEvents();をコメントアウトして無効にした場合でも、コンソール出力はされました。
    これで、Threadタイマは別スレッド、Windows.Forms.Timerは同一スレッドということが検証できたと思います。
    ありがとうございました。

    namespace WindowsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    TimerCallback timerDelegate = new TimerCallback(MyClock);
    System.Threading.Timer timer = new System.Threading.Timer(timerDelegate, null, 0, 1000);
    }

    private void button1_Click(object sender, EventArgs e)
    {
    aaa a = new aaa(); //実験2
    a.ShowDialog();
    }

    public void MyClock(object o)
    {
    Console.WriteLine(DateTime.Now);
    }
    }
    }


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

■55044  Re[3]: 0がNullとなる
□投稿者/ だい -(2010/11/15(Mon) 18:16:27)
    No54943 (魔界の仮面弁士 さん) に返信
    > ■No54933 (魔界の仮面弁士) に追記
    > >>Nullは0とする方法ありますでしょうか。
    > >>Nz関数を使ってみましたが、未定義関数としてエラーになりました。
    >>Nz は Jet の関数では無く、Access の関数です。
    >>JET SQL の場合は IIF 関数で代用してみてください。
    >
    > たとえば、SQL 側で対応する場合は
    >  「SUM(COL1)」
    > としていた部分を
    >  「IIF(SUM(COL1) IS NULL, 0, SUM(COL1))」
    > と書くことができます。
    >
    >
    > >>mdbでInt32であるフィールドに
    >>Jet で Int32 型に相当するのは、INTEGER 型ですね。
    >
    > 「INTEGER」のほか、その別名である「INT」「LONG」「INTEGER4」型も
    > 数値型(長整数型) を意味しますね。
    > http://office.microsoft.com/ja-jp/access-help/HP001032229.aspx
    >
    > (Int32 という型名は、VB 側では使えますが mdb 側では使えません)

    ありがとうございます。
    ご提示いただいたようにIIFを使ってみましたが、クエリビルダでISが不正であるとエラーになります。
記事No.54932 のレス /過去ログ92より / 関連記事表示
削除チェック/

■64323  Re[7]: VC++でDirectXのバージョン取得方法について
□投稿者/ とっちゃん -(2012/11/26(Mon) 11:48:46)
>
    No64314 (C++初心者 さん) に返信
    > 正確性に欠け無理やりな対応ですが、この機能だけに時間も避けないのでとりあえずこれで解決にしました。
    > もっとしっかりとした方法がありましたらお教えください・・・。
    > ありがとうございました。

    一応の解決は見ているようですが...

    DirectX 9 以上は、使いたい機能が利用可能か?で動作判定が必須になりました。
    単純にバージョンをチェックした場合、全部 DirectX 9 と判断されます(Vista 以降は、実質9Ex)。

    ですので、DirectXSetupGetVersion やレジストリを参照して判断するのではなく
    利用したいインターフェースの取得を試みる or FeatureLevel を取得するなどで
    判断する必要があります。

    ちなみに。。。
    Windows7 は、デフォルトで DirectX 10.1 で、アップデートで11に
    Vista はデフォルト10で、アップデートで10.1になります。

    10.0 と 10.1 は、3Dに違いはなく、Direct2D や DirectWrite などの2D系機能が追加されていたはずです。
    記憶を頼りに書いてるのでかなり怪しいですが...

    #解決済みはチェック入れておきますね。
記事No.64289 のレス / END /過去ログ108より / 関連記事表示
削除チェック/

■74365  Re[1]: ComboBoxのDisplayMember入れ替え処理
□投稿者/ ヴァン -(2014/12/19(Fri) 18:28:04)
    No74348 (モモ さん) に返信

    こんにちは。

    1.SelectedIndex を別変数に保存。
    2.DataSource をクリア。
    3.DisplayMember を書き換え
    4.DataSource を設定。
    5.SelectedIndex を別変数から復帰。

    という具合ではどうでしょうか?
記事No.74348 のレス /過去ログ125より / 関連記事表示
削除チェック/

■89812  Re[2]: C++のvector配列をGLfloat*に変換
□投稿者/ OpenGL -(2019/01/02(Wed) 19:01:30)
    回答ありがとうございます。大変失礼しました。
    今回は次々と自由自在に大きさを変えていくものを作りたくvector配列を使いたいと考えております。

    このように記述しました。


    ====================
    vector <vector<float>> v1(100, vector<float>(3)); //頂点座標xyz
    vector <vector<int>> v2(100, vector<int>(2)); //v1座標間で結ぶ線


    ~~~~~~
    glVertex3fv((GLfloat*)&v1[(GLfloat)v2[i][1]]); //線の始点
    glVertex3fv((GLfloat*)&v1[(GLfloat)v2[i][1]]); //線の終点
    cout << (GLfloat*)&v1[(GLfloat)[i][0]] << endl;//数値は何かチェック
    ~~~~~~

    結果:
    00A649E0

    ====================


    なお、glVertex3fv(&v1[v2[i][1]]);では

    error C2664: 'void glVertex3fv(const GLfloat *)': 引数 1 を '_Ty *' から 'const GLfloat *' へ変換できません。
    1> with
    1> [
    1> _Ty=std::vector<float,std::allocator<float>>
    1> ]
    note: 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

    と怒られてしまいます。
記事No.89809 のレス /過去ログ154より / 関連記事表示
削除チェック/

■89813  Re[3]: C++のvector配列をGLfloat*に変換
□投稿者/ とっちゃん -(2019/01/02(Wed) 22:21:26)
    No89812 (OpenGL さん) に返信
    > 回答ありがとうございます。大変失礼しました。
    > 今回は次々と自由自在に大きさを変えていくものを作りたくvector配列を使いたいと考えております。
    >
    > と怒られてしまいます。

    そりゃ、キャストできないですからねぇ。。。

    glVertex3fv( v1[v2[i][1]].data() );

    でいいんじゃないですか?

    個人的には、固定長なら

    vector<array<GLfloat,3>> v1( 100 );
    vecxtor<array<int,2>> v2( 100 );

    とするかな?
    こうすると、初期状態で100個の要素(中身は不定)を用意してくれます。

    もちろん、そのまま使えば明後日な値が入ってるので、電源が火を噴いたり、GPUが解けたりすることもあるかもしれませんが。
記事No.89809 のレス /過去ログ154より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -