ふらっとC♯(Part5)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。
前スレッドはこちら
http://pc2.2ch.net/test/read.cgi/tech/1059028988/l50 (Part4)
http://pc2.2ch.net/test/read.cgi/tech/1047210828/l50 (Part3)
http://pc2.2ch.net/test/read.cgi/tech/1035895873/l50 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1023766485/l50
0263デフォルトの名無しさん
NGNGトンクスエロイ人!
やっぱこうやるか・・・。なんだかなぁ・・・
0264デフォルトの名無しさん
NGNGこの64という制限は何によってかかっているでしょうか。
100に変更したりとかできないでしょうか。
0265デフォルトの名無しさん
NGNGMyButtons[,] = new Button[3,5];
のように宣言されていて、forの二重ループの中で初期化して
MyButtons[i,j].Click += new EventHandler(MyButtons_Click);
みたいにしてみましたが、MyButtons_Clickの引数には別に「MyButtonsの何番目か」は渡されません。
どうしたらいいんですか
0266デフォルトの名無しさん
NGNGボタンの番号が固定のものなら、Button.Tag あたりに番号を押し込めておけば良いのでは?
0267デフォルトの名無しさん
NGNGなんとかなりませんかねえ
0268デフォルトの名無しさん
NGNG???
だからTagにint[]{2, 1}とかいれとけばいいんじゃないの?
それがまずいというのならもっとわかりやすく説明してくれないと何がなにやら。
0269デフォルトの名無しさん
NGNGあ、いま意味が分かりましたサンクス
0270デフォルトの名無しさん
NGNG普通に1000とかできるじゃん……と思ったら.NET Framework2.0だった。
1.1の制限のようだ。
0271デフォルトの名無しさん
NGNGOS の制限。WaitForMultipleObjects() できる最大数が64だから。
2.0 で表面的な制限は外れても、64を超えると効率は落ちる気がする。
0272デフォルトの名無しさん
NGNGでも64周辺の境界は見あたらなかった。
ついでに1.0/1.1/2.0bも比較してみた。(スコアは低い方が優秀)
10でスコア 410 / 370 / 250
25でスコア 320 / 300 / 230
40でスコア 325 / 320 / 250
64でスコア 370 / 370 / 300
有意の差があるね。
1.1までとは違う機構を利用してたりするんじゃないかってくらい2.0は早い。
数が少ない時と多い時のスコアの分布とか。
0273デフォルトの名無しさん
NGNGABC | DEF | GHI
JKL | MNO | PQR
STU | VWX | YZA
BCD | EFG | HIJ
こういう表の MNOとVWXだけ範囲指定させるみたいなことはできますか?
0274264
NGNG環境も書き忘れたのに本当にありがとうございます。
しかもWaitForMultipleObjectsとの関連、
ベンチまでしていただいてとても参考になりました。
0275デフォルトの名無しさん
NGNGAObject obj1 = obj2.Clone();
ってすればいいんだろうけど、
Cloneを書くときにCのmemcpyみたいなことってできないんでしょうか?
それともいちいちフィールド一つずつ代入?
0276デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNGPoint aaa = new Point(0,0);
aaa = new Point(1,1);
aaa = new Point(2,2)
とかしても大丈夫?
0279デフォルトの名無しさん
NGNGint a = 0;
a = 1;
a = 2;
とやることにためらいを覚える?
0280デフォルトの名無しさん
NGNGp = malloc(100);
p = malloc(100);
とやることにはためらいを覚える。
0281275
NGNG正しいクラスはDisposeを持つべきってことか?
自前のやつも?
0282デフォルトの名無しさん
NGNGもうちょっとGCを信用しようや。
Disposeが必要なのは基本的にUnmanagedなリソースを扱うクラスのみ。
0283デフォルトの名無しさん
NGNGなんか「ゴミをゴミ箱に捨てると清掃員の仕事が減ってリストラされるから、ゴミは道に捨てるべき」とか言ってるみたい
0284デフォルトの名無しさん
NGNGでも
道に捨てない −> 清掃員の仕事が減ってリストラ −> ごみを捨て忘れても綺麗にならない
だから道に捨てるんだ。
0285デフォルトの名無しさん
NGNGツール(T)→webページのビルドコメント(B)
でドキュメントを作成したところ、「コード要素ページ operator + が不完全です。 」というエラーが取り除けなくて困っています。
だれか理由が分る人いますか?
以下問題のコードです。
/// <summary>テスト</summary>
public class Test
{
/// <summary>足し算</summary>
/// <param name="a">引数その1</param>
/// <param name="b">引数その2</param>
/// <returns>結果</returns>
public static Test operator + ( Test a , Test b ) { return null ; }
}
>>282
Unmanagedというより、IO関連とかメモリーと連携するわけにはいかないオブジェクトが実装する必要があるのでは?
OSのリソースはメモリーのようにいつでも解放できるリソースばかりではありませんから、そのようなリソースを握るオブジェクトには必然的に必要になります。
参照先がなくなった瞬間に即時開放されるタイプのクラスが定義できると、こんな面倒な事をしなくてすむんですが……
と、C++でスマートポインタを使っていると切に欲しくなる事があったりします。
0286デフォルトの名無しさん
NGNGまあ、>>285のように思う事はない事もない。
0287デフォルトの名無しさん
NGNGDisposeを実装すべきである事が多い。
単に使用終了と言う意味合いだけなら、何もする必要なし。
※Dispose実装したところでする事は何もない。
メモリに関しちゃほっとけばいいってのがGCのある環境での基本。
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGまあ、>>285の言うようなスマートポインタみたいな物っていっても、
結局直接参照しか扱えないため、包含するクラスは全部そのタイプにしなけりゃ
意味がなかったりして、結局大げさになりすぎてうまくいかないかな。
GCとは相性が悪いね。
0290デフォルトの名無しさん
NGNGダイアログを作りたいのだが,ここにいる諸氏ならばどのようにして実現するか,
意見をお聞きしたい.
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG他にもあるけど
窓の杜 - 【NEWS】米MS提供の.NET開発向けカスタムコントロール集「Visual Basic Power Pack」
http://www.forest.impress.co.jp/article/2004/06/24/vbpowerpack.html
0294デフォルトの名無しさん
NGNG一度全て読み込んだ後削除して上書きしか思いつかなくて。。。
消した後、そのファイルに追加を行うので、
消したい部分のみ上書きする方法でもいいのですが。。。
0295デフォルトの名無しさん
NGNG上書きなら難しいことでもないけど。
int b = 5;
FileStream fs = new FileStream("hoge.txt", FileMode.Open, FileAcceess.ReadWrite);
fs.Position = fs.Length - b;
StreamWriter sw = new StreamWriter(fs);
以下略
0297デフォルトの名無しさん
NGNGそっか Mamko に、だしておいた Seishi をぶち込めばよかったのか
ありがとうございますそれで子供できそうです
0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNGUSBマウスとUSBトラックボールをつなげています。こららの移動情報を個別に取得したいと思います。
どうすれば、よいでしょうか?宜しくお願いしまう。
0300デフォルトの名無しさん
NGNG.NET Frameworkのライブラリじゃ不可能。
Raw Input APIを使う必要がある。
参考:ttp://www.hatena.ne.jp/1085972533
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG使用したいのですが、いい方法はないでしょうか。
なお、今のところ、同一のアイコンファイルを
コンパイルオプションの「/win32icon」、「/resource」の双方を
使って実行ファイルに取り込んでいます。
0303デフォルトの名無しさん
NGNG/win32icon は API の ExtractIcon/ExtractIconEx で取り出せる。
0304デフォルトの名無しさん
NGNGライブラリのやつとかいちいちマニュアル見るの面倒なんだが。
0305デフォルトの名無しさん
NGNGVS使ってるならnewのインテリセンスとか。
あんまりclassかstructかを見分ける必要なぞ感じたことがないしな。
0306デフォルトの名無しさん
NGNGMultiColumnではなくて、ひとつの項目を二つの列に分けて表示したいんです。
具体的に何をしたいかというと、エラーの内容と発生時刻を表示したいんですが、
発生時刻を左側に、エラーの内容を右側にわけてリストボックスに表示したいんです。
日付は必ず1行ですがエラーの内容は複数行になる可能性があるので、
文字数揃えて表示・・とかよりも縦に二つに割れたら楽だと思うんですけど、どうやってやるのかさっぱりです。
ListBoxで実現するには、あるいはほかのコントロールで実現するにはどうすればいいんでしょうか。
0307デフォルトの名無しさん
NGNGちゃんと読んではいないけどGoogleのイメージ検索で引っかかったこれはどうだろう。
ttp://www.codeproject.com/cs/combobox/resizablelistbox.asp
//私ならListViewを使うかな……?
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNGめんどくさくね?
0310デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNG早過ぎる最適化は諸悪の(少なくとも大半の悪の)根源なり -- DEK
0313デフォルトの名無しさん
NGNG0314313
NGNG0315デフォルトの名無しさん
NGNGboxing と unboxing でドツボにはまるぞ。
値型と参照型の違いは押さえておいた方が良い。
0316デフォルトの名無しさん
NGNGstruct を lock () して排他したつもり、とか。
0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNGCTRL+Z や CTRL+C/V/X を実現するには自分でコードを書かないといけないのでしょうか?
0319デフォルトの名無しさん
NGNGまず試せ。
0320デフォルトの名無しさん
NGNGデザイナのプロパティウィンドウには表示されませんね。
基底クラス(Windows.Form)に加えたプロパティは
派生クラス(Windows.Form)のデザイナに反映される
みたいだけど、自分自身ならなぜだめなのかなぁ。
0321デフォルトの名無しさん
NGNGまったく同じレスをどこかで見たなぁ。
0322デフォルトの名無しさん
NGNG俺も見た記憶があるので探してみた
http://pc5.2ch.net/test/read.cgi/tech/1045307942/294
0325デフォルトの名無しさん
NGNG1,1 - 1,2まで幅1の線を引くと、どうも2pxくらい線が引かれちゃうし
1,1 - 1,1にすると線ができないんです。
0326デフォルトの名無しさん
NGNGBitmap に SetPixel で点を描いて、Graphics.DrawImage で画面に描写。
0327デフォルトの名無しさん
NGNGFillRectangle(DrawRectangleは不可)で幅・高さ1の四角を描画。
Graphics.GetHwndで取得したデバイスコンテキストにWin32APIのSetPixelで描画。
……元画像のビットマップを取得できるならBitmap.SetPixelが一番手っ取り早い/速いんだけどねー。
0328デフォルトの名無しさん
NGNG点を描画するGraphicsクラスのメソッドはないみたいなんだよね
結局SetPixelで妥協したけど、
Graphicsオブジェクトを使って描画を行うというルールから離れるからあんまりやりたくない
0329デフォルトの名無しさん
NGNG//user32.dllのAPIをまとめたクラスを最近作ってるからhwndまみれでつい。
0330デフォルトの名無しさん
NGNGGraphics はベクタ形式を含む一般的なグラフィックを扱うクラスだから、“点”という概念がないのよね。
数学的には、点は半径が無限小の円と等価な存在で、半径0の円は画面に表示できないから。
点、というか、ピクセル単位の処理がしたければビットマップを使えと。
Graphics に元画像のビットマップを取得するメソッドがないのは、
将来的に(Avalon で)、OS 自体をベクタ画像ベースで動くものにするつもりでいるからじゃないかな。
0331デフォルトの名無しさん
NGNG目から鱗
0332デフォルトの名無しさん
NGNGの記事をみてSQL Server 2000を使ってみようと思い立ったんですが、
とりあえず http://www.microsoft.com/japan/sql/evaluation/trial/2000/ をインストールして
みたのですが、ヘルプをみても使い方がサッパリ分りません。
インストールするとタスクトレイにDBのアイコンがでますが、これのサービスをスタートしようとすると
エラー1069(ログオンに失敗したため、サービスを開始できませんでした)となってしまいます。
これってまず何をすればいいんでしょうか?
0333デフォルトの名無しさん
NGNGhttp://mobiquitous.com/programming/ietoolbar.html
これを使って、IEツールバーのボタンが押されたらあるページがIEに表示されるように
したいのですが、どうすればIEを操作できるのか見当がつきません。
何か関連ありそうなキーワードがあれば教えてください。よろしくお願いします。
0334デフォルトの名無しさん
NGNGSite もしくは Site の IServiceProvider 経由で IID_IWebBrowser もしくはIID_IWebBrowserAppを
得て Navigate すればいいんじゃない?
0336デフォルトの名無しさん
NGNGApplication.Run の前に CreateControl して Hide して、Visible を false にしてもなぜか表示されてしまいます・・・
0337デフォルトの名無しさん
NGNGttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbtsksettingformtobeinvisibleatitsinception.asp
個人的にはApplication.Run()でやることが多いけど。
0338デフォルトの名無しさん
NGNGこれだと確かに表示はされないけれども、Load イベントも上がらないし・・・
普通の Win32 アプリでいう WS_VISIBLE でない状態でウィンドウそのものは作りたい、
というような状況なのです。CreateSuruct でも override してみるかなぁ。
0339デフォルトの名無しさん
NGNGForm の Load イベントで this.Hide() しても this.Visible = false; してもダメ、
Application.Run を Form.ShowDialog にしてもダメ。
(関係ないけどRun の代わりに ShowDialog 使うと Dialog 終了後のメッセージが処理されないので
表示した NotifyIcon を Form が Close される前に消さないとゴミが残る・・・)
VisibleChanged イベントのハンドラで Hide すると何とか消えるけど、一瞬表示されるのでちらつきます。
タスクトレイにいきなり常駐するユーティリティとかどうやってみんな作ってるんだろう。
0340デフォルトの名無しさん
NGNG> タスクトレイにいきなり常駐するユーティリティとかどうやってみんな作ってるんだろう。
NotifyIconとかを管理するクラスを作り、その中のContextMenuでフォームのShow/Hideを扱う。
メッセージループはApplication.Run()でメインウィンドウを持たせずに開始する。
0341デフォルトの名無しさん
NGNGできました!ありがとうございます。
0342デフォルトの名無しさん
NGNG(Sleep中または別スレッドが走っている時はカウントしない)
そういうクラス知っている人いますか?
0343デフォルトの名無しさん
NGNG返り値がobject配列なのですが、どうすれば各要素にアクセス可能になるでしょうか。
単に返り値をobjectとして取得することはできたのですが、その後が分かりません・・
0344デフォルトの名無しさん
NGNG言ってる意味がよくわからない。
もうちょっと具体的に。
0345デフォルトの名無しさん
NGNGこうしたかっただけです。
obj = type.InvokeMember("array", BindingFlags.GetProperty, null, doc, new object[] {2});
* これで二番目の要素をゲット
お騒がせしました。
0346デフォルトの名無しさん
NGNGこれをdisposeせずに、また
bmp=new Bitmap(filename2);
を呼び出したらメモリー減って行きますか?
それとも、同じ変数のメモリー番地に上書きされるだけですか?
0347デフォルトの名無しさん
NGNGもちろん新しいメモリが確保される。
インスタンスのサイズが違うかも知れないのに上書きしちゃまずいだろ。
0348デフォルトの名無しさん
NGNGそれなら上書きされるが。
つかそんなことに頭を悩ます意味は全くないが。
あとそれとDisposeとは何の関係もない。
0349デフォルトの名無しさん
NGNG>って、参照先じゃなくて変数そのもののアドレスか?
>それなら上書きされるが。
という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね?
0350デフォルトの名無しさん
NGNG画像データとか言わずBitmapインスタンスと言おうな、こういう場合。
まあ、そんな感じ。
細かく言うなら、「変数が示す参照先が書き変わる」。
変数が、古いインスタンスを丸めてポイして、新しいインスタンスにべったりくっつくわけだ。
//丸めてポイされたインスタンスはいずれGCが片づける。
0351346
NGNG0352デフォルトの名無しさん
NGNG>>350の書いてる内容は間違っちゃいないんだけど、
読み方によっては>>346が誤解してしまうように思う。
依然
>という事は、前の画像データが消えて新しい画像データに上書きされるって事ですよね?
のように言ってるからね…
まあ画像データが上書きされるってのを、プログラム上からはというか、
プログラムでの操作上はそのように見えるってだけの意味で言ってるのなら大丈夫かもしれんが…
0353デフォルトの名無しさん
NGNG上書きはされないよ。例えば、
Bitmap bmp = Bitmap(file1);
aForm.BackgroundImage = bmp;
なんてしておいて、後で
bmp = Bitmap(file2)
なんてやってもフォームの背景は変わらない。
前の画像は前の画像、新しい画像は新しい画像、お互いなんの関係もない。
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNGとってないよ。だから Dispose なんかしちゃだめだよ。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGコールバックもしくはなんだかの形でフックを掛けることはできないか知っている人いませんか?
0358在日参政権反対
NGNG単純にメソッド余分じゃ駄目なの?他のスレッドに何かさせたいんでしょうか?ならイベントとか?
0359デフォルトの名無しさん
NGNGシステム側でスレッドが切り替えられたときにも引っ掛けないとパフォーマンスが計れないです。
0360在日参政権反対
NGNG0361デフォルトの名無しさん
NGNGプログラミング自体初心者なのですが、
VisualStudioC#で作ったプログラムの
テキストボックスの中でバックスペースが効きません。
これってなんとかならないものでしょうか。
0362デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています