1 名前:デフォルトの名無しさん [2008/01/11(金) 15:41:00 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 ふらっとC#,C♯,C#(初心者用) Part22 pc11.2ch.net/test/read.cgi/tech/1197802312/
643 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:19:57 ] 画像処理関連で質問です。 1600*1200のbmp1があり、そのbmpの指定した座標(x,y)を支点として、 300*300のbmp2を重ねたいのですがどのようにすればいいのでしょうか。 Bitmap bmp1 = new Bitmap(filename1); Bitmap bmp2 = new Bitmap(filename2); bmp1.Add(x,y,bmp2); のような感じでできないのでしょうか? BitmapクラスとImageクラスのメンバをオブジェクトブラウザで眺めてみましたが、 そのようなメソッドを見つけることができませんでした。 GetPixelしてSetPixelするという操作を全量に対して行うしかないですか?
644 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:23:14 ] >GetPixelしてSetPixelするという操作を全量に対して行うしかないですか? それでもいいし bmp1のGraphicsを取得してそれでbmp2をDrawImageしてもいいよ
645 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 18:48:46 ] そしてIndexedなBitmapという落ち
646 名前:643 mailto:sage [2008/01/29(火) 18:56:08 ] >>644 ありがとうございます。 追記になりますが、その画像をjpegで保存したいと思っています。 描画にGraphicsクラスを使ったことはありますが、描画した画像を保存したことがありません。 DrawImageして出来上がったGraphicsクラスのインスタンスを使って 画像保存をすることはできますか?
647 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:01:30 ] >>646 Image.Save
648 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:19:09 ] >>647 は?
649 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:51:18 ] は?じゃないが
650 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:57:34 ] >>648 知らないならレスすんな
651 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 20:20:33 ] Graphicsクラスのインスタンスでは出来ないが、Graphicsには描画対象となるImageなりなんなりが必ずあるので、そっちの機能で保存すればOK
652 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:41:01 ] pictureboxより大きい画像を表示したばあい、スクロールバーを自動で表示したいけど無理ですか?
653 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 21:42:04 ] Panelに入れればいいだろ
654 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 22:19:46 ] kami
655 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 09:47:31 ] どーんと行こうや
656 名前:デフォルトの名無しさん [2008/01/30(水) 10:13:51 ] こんにちは ToolStripMenuItemのAllowDropをtrueにしてもOnDragEnterのイベントがきません MenuTripだと正常にイベントがきます 何かご存知な方がいましたら 教えて頂けると助かります。 よろしくお願いいたします。
657 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 13:22:37 ] 自分でイベント追加したら?
658 名前:656 [2008/01/30(水) 13:52:55 ] デリケートでイベントを追加しましたが うまくいきません 開発環境はvs2005、vistaです
659 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 14:09:18 ] 似たような質問どっかで見たな。ここか前スレだったかなー
660 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:07:19 ] 前スレ945ぐらいかな
661 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 17:43:09 ] ユーザーコントロール作ってみた で、完成度が高くなったので コントロールライブラリにしようと思ってDLL作ったんだが このDLLの使い方がわからない漏れはどうしたらいいですか?
662 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:06:19 ] 完成度低いから心配いらないよ
663 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:50:37 ] 我々の社会って連呼かよ 中国って何回言った? 死ねや
664 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 18:51:01 ] 誤爆スマソ
665 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:00:37 ] プログラマにもネトウヨ君っているんだね まあ近頃は一口にプログラっていっても知的水準はいろいろだからなw
666 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:05:35 ] プログラマ(笑
667 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:10:34 ] >>665 >>663 をネトウヨって言ってる時点でチョンか学生だな
668 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:19:22 ] うんチョンで学生でいいよ別に。 で「チョン」って何ですか? ネトウヨ君の仲間うちで通じる「ヲタ用語」みたいなもの?w
669 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:26:07 ] 他所でやれ
670 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:30:06 ] PGはリベラル派が多いんだろうな。
671 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:39:32 ] 「PG」だと微妙かもなw
672 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 21:42:32 ] >>665 は例の餃子たべちゃったんだよ。 そっとしといてやろう……( -人-)
673 名前:デフォルトの名無しさん [2008/01/30(水) 22:12:15 ] 餃子とか右翼の話は他でやれよ スレタイ読めないバカども
674 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:36:36 ] フォームの位置とか状態(最大化、最小化とか)を次回起動時に復元しようと プロパティのApplicationSettingsからLocation, ClientSize, WindowStateを保存するようにしたんだが なんか挙動がおかしい。 最大化ボタン押しても最大化しなくて何故か位置が変わったり。 なんでだろう。
675 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:46:31 ] なんでだろうね。
676 名前:656 mailto:sage [2008/01/31(木) 02:04:44 ] 前スレ945とは症状が違うようです。 ファイルのドラッグ&ドロップなら私の環境でも問題ありません。 Googleで探してますが、なかなかヒントが見つかりません。
677 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 08:20:44 ] TreeViewの中身を保存しようとしています。 TreeView.Nodes[0]をBinaryFormatter.Serializeで保存し、 読み込みはBinaryFormatter.Deserializeした結果をTreeView.Nodes.Addすることで一応実現できました。 ただこの方法だとツリーの展開状態と選択状態が復帰できません。 現時点ではTreeNodeと下のクラスが混在しているのですが、 TreeNode自体ではなく、TreeNodeから派生させたクラスを使うようにして そのクラスのDeserializeで展開状態とかを一旦内部フィールドに保存して、 TreeViewに追加した後に復帰させるしかないかなと思っているのですが もっと良い方法があるのでしょうか? [Serializable] public class TVKeyword : TreeNode { public TVKeyword() : base() { } protected TVKeyword(SerializationInfo serializationInfo, StreamingContext context) : base(serializationInfo, context) { } protected override void Deserialize(SerializationInfo serializationInfo, StreamingContext context) { base.Deserialize(serializationInfo, context); Keyword = serializationInfo.GetString("Keyword"); } protected override void Serialize(SerializationInfo si, StreamingContext context) { base.Serialize(si, context); si.AddValue("Keyword", Keyword); } public string Keyword { get; set; } }
678 名前:677 mailto:sage [2008/01/31(木) 09:06:37 ] 保存されたファイルを眺めていたら、 どうやら展開状態はそもそもシリアライズされていないように見えます。 派生クラスを作ることにしました。失礼しました。
679 名前:643 mailto:sage [2008/01/31(木) 10:26:47 ] >>647-651 ここの回答者はOOPというものが全く分かっていないのか? Graphicsクラスのインスタンスを使わないで、どうやってGraphicsクラスの インスタンスメソッド(DrawImage)で描画しようとしているオブジェクトを保存するんだ? >Graphicsクラスのインスタンスでは出来ないが、 >Graphicsには描画対象となるImageなりなんなりが必ずあるので、 >そっちの機能で保存すればOK 実際にコーディングしてみましたか? どう考えても、Graphicsオブジェクトを作成するときに使っただけのImageオブジェクトが、 インスタンスメソッドであるDrawImageによって変更されているはずがない。 DrawImageの引数にImageオブジェクトが参照渡しで渡されているのならば別だがね。 だからこそ>>643 のように質問しているわけなのだが。 てっきりGraphicsオブジェクトがメモリ上に保持しているGDIビットマップオブジェクトのハンドルを 取得して云々とかそういうアドバイスがくると思っていたのに、見当違いな回答しかこない。 挙げ句の果てに>>650 のようなアホまで出る始末。分かってないのはどっちだと・・・
680 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:40:53 ] >>643 みたいなアホな質問してる割には偉そうだなw
681 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:47:10 ] >>680 >>643 の質問が低レベルなのは十分承知の上だよ。 でもそれにたいする回答者が見当違いのアホ回答をしてきたからこそ噛みついているわけで。 少なくともあいつらよりは分かっているつもりだが。 もしもGraphicsクラスを使わずに、かつImageオブジェクトで泥臭い全量ループすることなしに、 他のアプローチでもっと簡単に実現できる方法があるのであれば、是非ご教授願いたい。
682 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:55:08 ] >>679 ,681 心底意味が分からん。 ベースとなるBmp1から作ったGraphicsを使ってBmp2をDrawImageするだけじゃん。
683 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:57:17 ] 何をぶち切れてるのか知らないけど、下のコードでtest.jpgは黒く塗り潰されたよ。 ImageもGraphicsも触ったのは初めてだけど、MSDNライブラリ見てったらすぐにサンプル見つかったよ。 Graphicsクラスの概要に「イメージ、ビットマップ、アイコン、およびメタファイルの操作」ってリンクがあるから そこの「方法 : 実行時にビットマップを作成する Image imageFile = Image.FromFile("sample.jpg"); Graphics newGraphics = Graphics.FromImage(imageFile); newGraphics.FillRectangle(new SolidBrush(Color.Black), 100, 50, 100, 100); newGraphics.Dispose(); imageFile.Save("test.jpg"); IDない板だし「は?」とかだけじゃ誰が何を言いたいのかさっぱりわからない。 はたから見てるとどういうやりとりなのか全くわからなかったから、スルーしてたんだよ。 ちゃんと誰で何を言いたいのかわかるようにしてたら、とっくに解決してたと思うけどね。
684 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 10:57:55 ] >>681 >>643 の質問内容より十分理解できる回答を見当違いといっている時点で、低脳杉。
685 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 11:00:16 ] >>679 >>681 >どう考えても、Graphicsオブジェクトを作成するときに使っただけのImageオブジェクトが、 >インスタンスメソッドであるDrawImageによって変更されているはずがない。 何に怒ってるのかわけ分からん。 >>682 >ベースとなるBmp1から作ったGraphicsを使ってBmp2をDrawImageするだけじゃん。 だな。 Bitmap bmp1 = new Bitmap(filename1); Bitmap bmp2 = new Bitmap(filename2); using (Graphics g = Graphics.FromImage(bmp1)) { g.DrawImage(bmp2, x, y); } これでbmp1の中身が変更されるはず。 bmp1.Save("check.bmp"); あたりで確認できるかな。
686 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 11:16:39 ] まあ今から棒グラフみたいなものを書きたかった、描画知識0の俺には ちょうどいい話題だったぜ。
687 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 11:27:55 ] ごめんなさいはマダー? (・∀・ ) っノシ凵 ⌒☆チンチン
688 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 11:30:33 ] 質問がネタに見えて仕方が無い。質問主はこれ試してみろ。 >>683 >>685 Save()メソッドはデフォルト.png保存じゃなかったっけな? using System.Drawing; using System.Drawing.Imaging; class Hoge{ static void Main(){ Image img1 = Image.FromFile("1.jpg"); Image img2 = Image.FromFile("2.jpg"); Graphics g = Graphics.FromImage(img1); g.DrawImage(img2,100,100,200,200); img1.Save("hoge.jpg",ImageFormat.Jpeg); } }
689 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 11:49:22 ] お前らの優しさは南半球まで響き渡るわ。
690 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:22:41 ] >>681 >Graphicsクラスを使わずに なんか初め>>643 から新しく条件加わってるけど、何でGraphicsクラス使ったらいけないんだ? Graphicsクラスでやりたいことが楽にできるのに、わざわざ自分で新しく作る必要ないだろ?
691 名前:651 mailto:sage [2008/01/31(木) 12:24:16 ] >>643 だからよう、Graphicsクラス自体は描画機能を持っているだけで、描画対象は別に必要なんだよ。 だから、描画対象となるオブジェクトを指定せずにGraphicsクラスのインスタンスを作成出来ないようになってるわけ。 Graphicsクラスのインスタンスメソッドを使用して実際に変更されるのは描画対象オブジェクトのほう。 >>688 指定した拡張子に対応するImageEncoderがあれば、自動的にその形式で保存されるはず。
692 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:32:02 ] >>679 こっちはコード書いたことあるからわかってんだよ それで動かないってどんな糞コード書いたんだよ 晒してみろよ アホすぎて生きてる価値ないんじゃね
693 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:36:48 ] なるほど、このスレでは横柄な態度で質問したほうが答えが付きやすいってことだな
694 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:38:33 ] >>681 > もしもGraphicsクラスを使わずに、かつImageオブジェクトで泥臭い全量ループすることなしに、 > 他のアプローチでもっと簡単に実現できる方法があるのであれば、是非ご教授願いたい。 bitmap
695 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:41:13 ] >>643 にたいして>>644 で答えが出ているというところが恐ろしい
696 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:42:27 ] 横レスだけど正直>>643 の切れ方は意味がわからないな。 いきなり「オブジェクト指向が〜」とかキレてるのよんでリアルでコーヒー吹いちゃったよw というか、適当にレスを拾い読みした感じでは、>>643 はWinの描画の考え方っていうか デバイスコンテキストって概念を知らないんだと思う。 まあ最近の.NET用の入門書はこのあたり解説してないのが多いと思うから無理もない。
697 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:45:06 ] たぶんさ、PC-98時代のビットマップスクリーンと同じ発想で Winのグラフィックも考えてるんだろうね。 だとしたら結構年長のオジサマなんだと思うよw
698 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:47:58 ] いやこれどうみてもガキだろ
699 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:54:09 ] >>679 の一番痛いところは > Graphicsクラスのインスタンスを使わないで、どうやってGraphicsクラスの > インスタンスメソッド(DrawImage)で描画しようとしているオブジェクトを保存するんだ? ここ 描写しようとしているオブジェクトは Graphicsクラスのインスタンス となんら関係がない 勝手に持ってろって話
700 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 12:57:59 ] ここまで能無しだと釣りに思えるんだが・・・ 本気でこんな事言う人間が居るのか?
701 名前:643 mailto:sage [2008/01/31(木) 13:16:43 ] ごめんなさい
702 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 14:09:14 ] それだけ?
703 名前:643 mailto:sage [2008/01/31(木) 15:53:11 ] 全面的に私が悪かったです。 これまでの暴言を心よりお詫び申し上げます。 何卒お許し下さい。 経緯及び結果を説明します。 >>617 =>>643 =>>646 =>>648 です 流れとしては、1600*1200の画像から台形補正をするために、 1600*1ずつ切り取っていって、それを目的の等脚台形にするために横にのばして 貼り付けていくという手法を試みたのです。 画像処理は初めてだったので、>>643 の質問をしてみました。 Graphicsクラスを使って実現するためには、Graphicsクラスのメンバ変数にImageオブジェクトが 格納されていなければならないと思いこんでいました。←勘違い 実際は、 Graphics newG= Graphics.FromImage(img); この引数で渡されたImageオブジェクトをGraphicsオブジェクトがPrivate変数で保持していて、 それに対して処理を行っているということなんですね。 だから引数で渡されたオブジェクトそのものが変更されると。 値型との区別が付いていなかったようです。←低脳 ということで、結果としてはやりたいことができました。 以下にコードを記します。
704 名前:643 mailto:sage [2008/01/31(木) 15:55:34 ] using System.Drawing; using System.Drawing.Imaging; class Hoge { static public void Main() { int newX = 3200; int newY = 3200; Image bmp = new Bitmap("input.jpg"); //画像読み込み[1600:1200] Image newbmp = new Bitmap(newX, newY); //編集後イメージ(等脚台形格納用) Image tmpbmp = new Bitmap(newX, bmp.Height); //編集作業用イメージ(台形格納用) RectangleF destRect = new RectangleF(0, 0, 0, 1); RectangleF srcRect = new RectangleF(0, 0, bmp.Width, 1); Graphics newG = Graphics.FromImage(newbmp); Graphics tmpG = Graphics.FromImage(bmp); Point[] pt = new[] { new Point(0, 0), new Point(newX, 0), new Point((newX + bmp.Width) / 2, newY) }; //等脚台形変換用平行四辺形の3頂点 //続く
705 名前:643 mailto:sage [2008/01/31(木) 16:02:49 ] //続き int tan = (newX - bmp.Width) / bmp.Height; //台形積分計算用 //台形作成用ループ for (int i = 0; i <= bmp.Height; i++) { srcRect.Y = i; destRect.Y = i; destRect.X = newX - i * tan; //tmpbmpに貼り付けていく tmpG.DrawImage(bmp, destRect, srcRect, GraphicsUnit.Pixel); } //tmpbmpの保存 tmpbmp.Save("tmp.jpg", ImageFormat.Jpeg); //等脚台形に変換してnewbmpに格納 newG.DrawImage(tmpbmp, pt); //jpgで保存 newbmp.Save("output.jpg", ImageFormat.Jpeg); //終了処理 tmpG.Dispose(); newG.Dispose(); newbmp.Dispose(); tmpbmp.Dispose(); } }
706 名前:643 mailto:sage [2008/01/31(木) 16:06:46 ] 補足ですが、この台形補正では逆透視変換は実現できませんでした。 こんな単純なアルゴリズムで実現できるはずがないということにもっと早く気づくべきでしたかね。 結局OpenCVの力を借りて実現する方法にしたいと思います。 Cの勉強しなくては・・・ .NET脳の私には頭が痛いです。
707 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:27:03 ] ,.――――-、 ヽ / ̄ ̄ ̄`ヽ、 勇者トンファーパーマン惨状 | | (・)。(・)| | |@_,.--、_,> 俺が着たからにはもう色々と駄目だ ヽヽ___ノ /:::::::::::::::::l /77 /::::::::::i:i:::::::i,../ / | l:::/::::::::i:i:::、:::/ / | l;;ノ:::::::::::::::l l;.,.,.! | /::::::::::::::::l/ / 冂 /:::::::;へ:::::::l~ |ヌ| /:::::/´ ヽ:::l .|ヌ| .〔:::::l l:::l 凵 ヽ;;;> \;;> いろいろつっこみたいけど、とりあえず www.google.co.jp/search?num=20&hl=ja&rlz=1T4GGLJ_enJP208JP208&q=C%23+Graphics+Trapezoid&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
708 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 16:47:03 ] 本当に初心者な質問で恐縮なのですが…… Windowsアプリ(VC#2005)で、XMLとCSVから読み込んだデータをDataGridViewに表示させようとしています。 そのときのバインド方法なのですが、下記の2パターンの差がわかりません。 BindingSourceのデータソースとして(DataTableではなく)DataViewを使用するメリットって何かありますか? DataTable→DataView→BindingSource→DataGridView DataTable→BindingSource→DataGridView
709 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 17:06:44 ] DataTable.DefaultView以外のDataViewを使える
710 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:04:08 ] C#でスタック関係の直接操作ってできますか?
711 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:05:41 ] なんでスタックなんか弄りたいんだ?
712 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:17:07 ] 関数のカリー化を実装したいとか
713 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:17:58 ] それならdelegateでいいだろ
714 名前:710 mailto:sage [2008/01/31(木) 18:22:59 ] うまく説明できないのでまとめると ウィルスチェックってどうなってるんだろう? →全ファイル走査するにはどんなやり方がスマートなんだろう →再帰処理を使って全部辿るのがベターらしい →なんだか重くなる (ここら辺から迷走気味) →コールスタックとかを知る →すたっくおーばーふろー・・? (本格的に迷走) →スタックを直接操作できればどうにかなるんじゃね? こんな感じです 質問をするにもどう質問すればいいかわからず>>710 のような具合で質問しました
715 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:29:04 ] 再帰処理をほぐす、すなわち、 再帰処理で、保存・復帰してる情報(今探索してるフォルダの情報)を、 インスタンス変数にリストか何かで保持するようにして、そのリストで、 保存したり取り出したりして、本体はループになるように書き直す、 というのがだいたい定番。 ファイルシステムの場合、親フォルダを ".." で探せることを利用すれば、 そういう面倒なことをしなくてもうまくいくかもしれない。
716 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:30:34 ] 吹いたw とりあえず重くなる原因を確認したほうが良いよ
717 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:30:59 ] 再帰関数でローカルな変数が多すぎなら、 関数を何とかする手もある。
718 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:31:54 ] そもそも再帰の脱出条件ミスってて、無限に掘ってるかもしれんなw
719 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:35:02 ] >>715 つまり再帰処理を行う回数を最初に逆算しておくってこと、かな ディレクトリの階層数があって更に木構造のように枝分かれしていくのを考えると すごく大変そうですがちょっと調べつつがんばってみます・・・ >>716-718 しっかり終了はするんですが、時間が経つとだんだんと重たくなってきます CPU使用率の方が、他アプリケーションをがんがん使うと結構きつくなったりするようです
720 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:36:50 ] お前のパソコンはウィルス検索中に他アプリケーションがんがん使ったら重たくならないか・・? うちのノートン先生は重たくなる
721 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:39:22 ] >>719 > つまり再帰処理を行う回数を最初に逆算しておくってこと、かな 「配列」じゃなくて「リスト」って書いた意味を汲んでくれないかな...
722 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:42:53 ] >>709 なるほど! ありがとうございました。
723 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:44:13 ] ・探索中にサブディレクトリを見つけたら、現在の状態をスタックに積み上げて、 サブディレクトリの探索を開始する。 ・現在のディレクトリの探索が終了したら、スタックから状態をとってきて、 そのディレクトリの探索を再開する。 ・スタックが空になったら終了。 何も難しいことはない。
724 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:48:28 ] 再帰をループにするときはスタックに変数を入れるんじゃなかったっけ。
725 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:49:05 ] Directory.GetFiles(@"c:\", "*.*", SearchOption.AllDirectories); とかじゃだめなのか?
726 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:49:13 ] あ、かぶった。
727 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:50:23 ] >>725 あんまり変なことを教えるなよ…
728 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:54:15 ] >>725 それだとXP以降のOSではシステムフォルダを検索しようとして権限がないので例外が発生する。 また拡張子のないファイルが取得出来ない。
729 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 18:57:45 ] コールスタックの知識自体に間違いがあると問題なのですが、 再帰呼び出しをするからスタックが溜まっていってしまうのであって ループで何度も何度も呼び出す分には問題ないのでしょうか? >>721 すみません調べてみます >>723 やってることは同じなのは感覚として掴めました しかし全然想像つかないです、じっくり考えてみます >>725 調べていてDirectoryInfoとかそういうのは見つけました .GetFiles()とかは使っていましたが引数渡すのは試してないです ちょっとやりたいことがやられちゃう感じなので今回はパスでお願いします
730 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:02:47 ] 関数を呼び出すたびに、その時点の実行状態がコールスタックに積み上げられる。 しかし、コールスタックは小さいから、すぐに溢れる。 だから、再帰呼び出しをループに展開する。 そのときには、もとと同じようにスタックを使って実装すると楽。
731 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:12:04 ] コールスタックについて学ぶのは良いことだけどさ、 たかがコールスタックが増えたごときで動作は遅くならん。 ましてやディレクトリの深さが 1000 や 2000 も無いかぎり溢れるなんて。
732 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:13:27 ] どうでもいいかもしれないけどファイル階層列挙場合はQueueの方が好きかなあ 並び的に
733 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:49:26 ] >>730 つまり関数の中で関数が呼ばれてその中で更に・・・みたいのだとあふれちゃうんですよね スタックはC++でクラスを勉強する時にそういう構造を作ってみた記憶があるので やってみようと思います >>731 ですよね・・ちょっと1から作り直してみます ありがとうございました、助かりました
734 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 19:56:24 ] それにしても良い子であった スタックの実装にArrayListを使ってくれればいいけど
735 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:06:27 ] >>734 なんで”Array”Listなん?
736 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:16:56 ] Stack<T>でおk
737 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:39:51 ] .NETってどうしてもっさりなん?
738 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 20:59:41 ] メモリ大量に積んだvista使ってから言え! ってゲイツが言ってた
739 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:02:21 ] 32bitCPUだといまのメモリで限界だろ(2GB)
740 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:04:38 ] つーか、スタックぐらい自分で作ればよくね?
741 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:46:08 ] Expression Treeって面白いな 時々話題になるT Multiply<T>(T left, T right)みたいなのも簡単に作れる
742 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 21:57:21 ] Mapが見当たらないので作ってしまったが,拡張性高いのはいいなC# static class Extension { public delegate Y MapFuncor<X, Y>(X item); public static IEnumerable<TDst> Map<TSource, TDst>(this IEnumerable<TSource> source, MapFuncor<TSource, TDst> functor) { foreach (TSource s in source) { yield return functor(s); } } }
743 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:00:26 ] Enumerable.Selectでいいだろ
744 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 22:37:36 ] >>743 いまわかた^p^
745 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:29:50 ] .netもっさりとか言ってるやつはどんなボロいPC使ってるん?
746 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:33:35 ] .netもっさりって気分は分からんでもない。 結局は結構windowsのAPI使用することが多いし。 何のための.netなんか分からんときがある。
747 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:36:31 ] それでも楽じゃん。
748 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:42:18 ] >>745 Athlon64 3500+ですがもっさりです
749 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:46:47 ] それじゃあたりまえ。
750 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 23:58:33 ] どれ位のCPU使うともっさりしなくなりますか?
751 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:04:34 ] >>750 ヅアルコア
752 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:06:00 ] >>748 日ごろのメンテナンス次第でいくらでも遅くできるよ
753 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:13:31 ] Pen4とかでも、チューニング次第じゃそこそこ動くんじゃね?
754 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:24:18 ] 今Core2Duoを買う金がないのでAthlon64 X2にでもしてみます。 あの重い2005が軽くなるなら。
755 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:26:14 ] メモリ搭載量の方が重要
756 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:30:04 ] 今AMDは駄目だろ。
757 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:30:50 ] メモリ3G詰め込めばOK
758 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:31:20 ] 2G積んでます。 それと2度目以降の起動はキャッシュが効いて速いです。 よく見ると2005自体にNTFS圧縮が掛けてあるみたいです。
759 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:32:42 ] >>754 OS入れなおしだよ
760 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:32:50 ] 常駐プロセスいくつあるよ?
761 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:33:28 ] >>756 安いのならコストパフォーマンス高いんじゃね? 15k以下のラインで
762 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:35:52 ] >>759 それやっても大して変化なかったです。 >>760 42個です。極力いらないものは切っています。
763 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:36:36 ] NTFS 圧縮のせいじゃね?
764 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:36:49 ] 4万だせばX2 4000+でGeForce6150のケース付きが変えます。 メモリは別ですが今は5000円あればお釣りが来ますので。
765 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:37:53 ] >>763 わかりました。やはりNTFS圧縮のせいでもっさりなのかもしれません。 WordやExcelにもNTFS圧縮掛けていますがもっさりしませんけど。 あとC++Builder2007にも圧縮掛けてありますがもっさりしません。
766 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:38:19 ] 中間ファイルに圧縮かかってたらもっさりしそう
767 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:38:44 ] CPU : pentium4 3ghz mem : 256*2 これでも十分。
768 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:39:52 ] >>764 4万出してそれはないわ。
769 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:40:09 ] >>767 えー やっぱりNTFS圧縮のせいっぽいですね。 他に原因が思いつかない。
770 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:40:15 ] おまえらPC自作板かよ
771 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:41:44 ] 今思い出しましたが2003の時はNTFS圧縮を掛けてなかったのでか もっさりしてませんでした。 さっそく圧縮を解除してみます。これでだめなら本格的にPCの交換を 考えます。
772 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:42:56 ] 俺NTFS圧縮掛けてない ちなみにCドライブは80GB
773 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:51:56 ] >>762 常駐多すぎ ノートンいれて起動時に30切るくらい、スタンドアロンで20弱くらいで
774 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:54:39 ] >>773 30個?どうやったらそんなに少なくなるんだろう。 WinampエージェントとかDaemon Toolsとか切るしかないか。
775 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:55:32 ] 俺今3GBだけど起動直後で60個くらいあるわ・・・ しばらく前までは1GBで常駐プロセスとか気にしてたんだが・・・
776 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:56:42 ] 60は多すぎ。
777 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:58:40 ] ちなみに仮想メモリは切ってある
778 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:59:39 ] 変態的にカスタマイズし過ぎかと
779 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 00:59:55 ] >>774 デーモンとかwinampは関係ないだろ・・・切れよ・・・
780 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:01:19 ] >>779 切りますか・・・・
781 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:02:33 ] msconfigして、スタートアップとサービスから マイクロソフトとセキュリティ関係のやつ全部とめて デーモンバスターいれて、不要なwindowsプロセスとめるといいよ
782 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:03:08 ] それくらいはやってるが
783 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:03:48 ] ituneHelperとかなめてるよな。
784 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:04:24 ] QuickTimeのおそろしさは異常
785 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:05:14 ] まったくだw
786 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:06:03 ] それ考えるとAcronis True ImageとDiskeeper2007入れてるのが 痛いかもなあ。 Acronis True Imageは定期的にバックアップ取るので仕方ないとして Diskeeperはバックグラウンドでデフラグするので止めた方がいいのかも。 でも何かやってる間はデフラグ止めてくれるんだけど。
787 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:06:46 ] >>784 QUick Time Alternative入れてます。
788 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:08:34 ] >>787 賢いな
789 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:14:54 ] なんか話がスレとかなり違ってきている。
790 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:15:14 ] コーデックそのものがffdshowしか入れてないので・・・・って だいぶスレチになってきました。
791 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:15:36 ] こういう話なら敷居が低くなるから盛り上がる
792 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 01:35:50 ] うんこな話題にハエがよって来てるだけだろ
793 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 02:05:46 ] そのうんこをためらいなく踏み潰す >>792 。かっこいー!
794 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 03:01:02 ] 開発環境は「できるだけ」素のOSっぽくしときたいよな
795 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 03:07:05 ] まっさらなHDDにOSだけ入れればいいんじゃね?
796 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 03:10:54 ] でもそれだと不便だよ 最低限便利なファイラとか解凍ソフトが欲しい
797 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 03:12:28 ] おまえら学生とかアマグラマ?
798 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 03:59:14 ] cvsサーバーが必要だよな
799 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 04:47:17 ] >>798 どこの古代人だw
800 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 04:55:18 ] Windows専用ソフトならWin標準GUI使って欲しい 正直.NET快適、Javaは起動以外快適、動作はもっさり .NETがもっさりするPC使ってみてえ Win98時代のが残ってるけどそっちはHDD小さすぎてなんもできないしな
801 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 05:10:56 ] 日本語でおk
802 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 05:28:12 ] 常駐起動時50くらいだしStylerとか入れてるがすいすい起動する ブートファイルデフラグを何回かやっていくと起動が目に見えて早くなることがあるから ブートファイルデフラグ→再起動繰り返しでちょくちょく様子みてる
803 名前:デフォルトの名無しさん [2008/02/01(金) 11:10:58 ] .NET2.0のMDIアプリで親フォームと子フォームの両方にToolStripPanelを付けたのですが、 なぜか、この親子間でToolStripPanelのドッキングツールバーが移動できていまうのですが、 両者のツールバーは全く意味が違うツールバーなので移動できないようにしたいのですが、 どうすればよいでしょうか?
804 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:14:59 ] 何故そんなことをする必要があるのかは抜きにして、 labelに表示してある文字列をstring型で再取得する方法ってあるのでしょうか?
805 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:36:10 ] label.Text
806 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:42:40 ] その方法だと表示してある文字列じゃなくて "label1"という文字列を取得してしまうのですが・・・やり方が悪いのかな
807 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 15:46:41 ] それはlabelにlabel1って入ってるんじゃないの
808 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:04:34 ] すみません、情報が小出しになってしまって。 DateTime nitiji = DateTime.now; label1.Text = nitiji.ToString("d"); これでlabel1に「2008/2/1」って表示されてるとしたら label1に表示されている"2008/2/1"ってのを 文字列で取得したいんです。(nitijiを使わずに) これがやりたいんですが、出来ますか?
809 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:06:09 ] いや、だからlabel1.Textだって
810 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:06:15 ] 小出しにするやつは相手にしない
811 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:06:16 ] >>808 >>805
812 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:12:50 ] labelに表示するタイミングとlabelの文字列を取得するタイミングが 後者の方が早くなってしまっていたみたいです。 最初から正解を教えていただいていたのに申し訳ありませんでした。 >>805 さん、807さん、809-811さんありがとうございました。
813 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:28:39 ] 人の悩み所って色々あってすごいね・・
814 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:30:34 ] 最近C#を習い始めてまだよく分からないのですが、 学習本の中にはインターフェイスを定義するとき、 public interface Itest { … } と、インターフェイスの先頭にpublic修飾子を付けているものがあります。 本の中で詳しく解説されていないのでよく分からないのですが、 このpublicを付ける場合と付けない場合とでは、何か違いがあるのですか?
815 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:33:22 ] >>814 publicでアセンブル(DLL)の外部から使える。 何もつけない場合はinternalで内部のみで有効。
816 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:48:56 ] >>815 素早い解答有難う御座います。 なるほど、デフォルトではinternalとなるのですか。 分かりました。
817 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:20:21 ] 挫折するタイプだな。
818 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:21:13 ] すみません。質問いいですか? サーバーに置いたC#のexeってそのままじゃクライアントから起動できないんですか? セキュリティ関係なんでしょうか。。。。 誰かお力をお貸しください
819 名前:818 mailto:sage [2008/02/01(金) 19:22:40 ] すみません。ローカルサーバーです。 言葉が足りませんでした
820 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:24:27 ] サーバーソフトは?
821 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:25:41 ] どちら側のCPUを使って処理するかによるんじゃないの?
822 名前:818 mailto:sage [2008/02/01(金) 19:26:58 ] んー、すみません・・・ 知識不足で理解できません・・・ \\hogehoge\\hore\foreって感じのパスになるんですが。 本当にお世話掛けます。すみません
823 名前:818 mailto:sage [2008/02/01(金) 19:28:01 ] ×\\hogehoge\\hore\fore ○\\hogehoge\hore\fore でした
824 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:30:51 ] パスとか何の役にも立たない情報を提供されてもw ちなみに hoge の次は fuga, piyo と続く。
825 名前:818 mailto:sage [2008/02/01(金) 19:31:52 ] >>824 wすみません>< > fuga, piyo これ信じていいんですか?
826 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:32:23 ] ここまでの情報で言うと おそらくSequrityExceptionが発生して終了かと
827 名前:818 mailto:sage [2008/02/01(金) 19:34:34 ] >>826 会社でちょっとしたツール作ってるんですけど 会社で2chはまずいので自宅から書き込みです。 。。ですので詳細を説明する事ができないのが申し訳ないのですが・・・・
828 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:34:44 ] そもそもC#じゃなくても実行ファイルは・・・・・・・・・・・起動できるの? かなり危険だよね。
829 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:38:56 ] C#でサーバに置いたファイル、ということならクリックワンス使うのがいい気がするな
830 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:39:35 ] .net言語は一度中間言語に直してから必要な部分をそのつどコンパイラして実行しているわけですよね? これをサーバー側のpcのcpuで行ってデータだけをユーザー側に送るなら、サーバーのPCに対してユーザーにアクセス権?を与える必要があるんじゃないですか?
831 名前:818 mailto:sage [2008/02/01(金) 19:39:38 ] >>828 !! ・・・・なるほど。そういうもんなんですかぁ・・・ こちらの住人さんがおっしゃるなら正しいと思います。(本気ですよ) ありがとうございました。そしてお騒がせしました
832 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:41:17 ] >>831 いや、聞いているんですけどね・・・・・・・・・・・・・・・・
833 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:42:14 ] 実行ファイルをを CGI に使うのはわりと普通だよ。
834 名前:818 mailto:sage [2008/02/01(金) 19:42:43 ] > .net言語は一度中間言語に直してから必要な部分をそのつどコンパイラして実行しているわけですよね? なるほど!目からウロコです。そうですよね、JITコンパイルするのは サーバー側になってしまいますよね。 んー簡単に考えていた私が浅はかで恥ずかしいです><
835 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:44:16 ] クリックわんこで解決。
836 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:44:57 ] >>830 \\hoge~.exeでクリックすると実行されるFWはローカルじゃなかったかな でもセキュリティ例外が出るので鯖での権限設定は必要だったかと ・・・あきらめてEXEばら撒いたので解決策はよくわからない^^
837 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:47:26 ] webブラウザが要求してプログラムを起動させるんですよね?
838 名前:818 mailto:sage [2008/02/01(金) 19:47:36 ] すみません。会社から呼び出しが掛かってしまいました・・・・・・・ もし宜しければ色々と情報をお教えいただけると助かります。 クリックわんこも自分なりに調べてみますね ・・・・・・んでは行ってきますorz
839 名前:818 mailto:sage [2008/02/01(金) 19:48:50 ] >>837 あ、すみません。サーバーフォルダのexeをショートカットで直に叩くつもりなんです
840 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:49:06 ] クリックわんこが気になる・・・・・・・・・・・・・
841 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:58:56 ] 会社から2chで質問って・・ MSDNフォーラムにでも行っとけまじで。 つかその状態ならクリックワンス配信だろJK
842 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:00:22 ] たしかにClicOneceに可能性がある。 すごいなC#・・・・・・・・・・。
843 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:10:02 ] ClickOnceでは、配置時のオプションとして、アプリケーションを配布(=デプロイメント)する方法を、次の2種類から選択できる。 (1)ローカル環境へインストールするモード(オンライン/オフライン・モード) (2)ネットワーク上から起動するモード(オンライン・モード) (2)だね。 参考に張っておきます。 www.atmarkit.co.jp/fdotnet/clickonce/clickonce02/clickonce02_01.html
844 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:43:51 ] Func<>でパラメータにvoidを指定したいのですけどどうやるのでしょうか? voidってかいたらだめだといわれました.
845 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:53:42 ] 何故コードとエラーメッセージを書けないのか、頭がおかしいのだろうか
846 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:55:07 ] >>844 読み取りも書き込みもできない型なんてあるだけ無駄だからコンパイラさんがエラー吐いてくれてるんだとおもえ
847 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 21:00:36 ] >>844 型引数無しのActionを使え
848 名前:844 mailto:sage [2008/02/01(金) 21:02:23 ] Actionなんてのもあるのですね.これまで見たのがFuncだけだったのでこれしか知りませんでした. ありがとうございました.
849 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 21:17:57 ] Sequrity とか Onece とか……一体このスレはどうしちゃったんだ
850 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 21:21:09 ] Let's Engrish with me!
851 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 21:36:37 ] ク・・クナイフ
852 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:02:20 ] ホ・・ホングコング
853 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:10:57 ] キ・・キングコング
854 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:16:10 ] 頭が不自由な奴らってのはどうして繰言が好きなんんだろね。 そういや知的障害の子とボケ老人も繰言ばっかり言ってるよなw
855 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:22:59 ] Engrishなのだろうかこれ…
856 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:29:57 ] エイゴリアン見ないと・・・
857 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:35:01 ] エイドリアン
858 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:35:14 ] 繰言・・・クリゲン?
859 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 22:56:50 ] >>824 ってマジ?
860 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:00:21 ] そんなちょっとしたツールで軽い気持ちでクリックワンスに手を出したら後悔するぞ
861 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:03:28 ] JITコンパイルも実行も全部ローカルだよ。 ってか適当なこと書きすぎだろ。 サーバに実行ファイルがある場合はイントラネットゾーンになって デフォルトの権限が弱くなるだけだ。
862 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 00:36:55 ] >>859 マジ 英語だとfoo,bar,baz
863 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 02:27:17 ] タスクトレイに登録されているアプリケーションまたはプロセスの一覧は取得できないのでしょうか? Process.GetProcess()や Process.MeinWindowHandleを試したのですがうまくいきませんでした ご存知の方おられましたらよろしくお願いいたします
864 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 02:42:17 ] 「C#の絵本」ってどうなの?
865 名前:デフォルトの名無しさん [2008/02/02(土) 03:23:10 ] >>864 >>C#を気軽に学べる一番やさしい解説書! だってよ。
866 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 03:34:01 ] >>863 むりぽ
867 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 03:36:01 ] >>866 そうですか・・・(´・ω・`) 実行時にタスクトレイに常駐(ウィンドウなし)する アプリケーションがあるのですが、プロセスを殺していいかどうかの判断ができないんですよね・・・ どうしたらいいんだろう
868 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 03:36:58 ] 最近C#はじめてびっくり C++とか糞に見えてきた
869 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 03:53:27 ] >>868 んなこたあない グラフィックはGDI+で遅いし.NETはなぜかもっさりする
870 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 04:08:59 ] C#でもポインタ使えば早いじゃん
871 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 04:10:27 ] C#最高、.NETがダメ
872 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 04:11:10 ] >>869 何故かもっさりって原理分かってれば当然かと。
873 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 04:20:30 ] >>872 JITコンパイル終わった後ももっさりするんだよ 吐くコードが糞なのか?
874 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 04:31:28 ] 書くコードが糞
875 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 04:57:26 ] つまり糞を見て「なんでこんなに糞なの?」って考えてるようなもん
876 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 05:43:23 ] >>873 がうんこした後便器を覗きながら>>875 を言ってる姿を想像した
877 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 09:05:32 ] そしてそのうんこをひりだしたのが>>873 自身ってわけだな
878 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 09:57:22 ] >>873 もっさりって言っても、Cのコードの2倍以内だろ? もっさり感じるのは、やっぱGUIとか他の要因だと思われ。
879 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:16:41 ] WinForms以外で遅いなら書いた奴が糞だと考えざるを得ない
880 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:26:12 ] wpfももっさりしてる
881 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:36:42 ] 直接Direct3D使うならC++とほとんど変わらないくらい速いのにな なんであんなに重くなるのか
882 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:43:30 ] WPFが重いのはポトペタ開発の支援にそこかしこでリフレクション使ってるからじゃないかな。 データベースの内容を表示して変更するだけみたいな、ちょこっとしたプログラムなら、 IDEでコントロール置いてプロパティ編集するだけで、ほとんどコード書かずに済んだのには感動した。
883 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:58:21 ] WPFはフリッカーフリーとかティアリングフリーとか 最悪の状況を回避が基本だからというのがあるんだろう 今までのWin32が持ちにくかったものだな 逆に言えばやっとではあるんだが・・・ つかWPF重くないと思うよ。実現している内容を考えるに
884 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 12:58:38 ] C#で作りました。 ソフトが起動できるかどうか確かめて頂けると助かります。 www.ts-scorpion.info/wme9mccst/ よろしくお願いします。
885 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:00:43 ] 実行ファイルを起動するのは・・・・・・・・・・・・・・ 本当に大丈夫だろうね?
886 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:00:57 ] >>883 大抵の場合においてオーバースペックだから、formsの単純な代用にはならんのだよなあ。
887 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:02:51 ] >>884 レジストリ云々のメッセージが出てきた。
888 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:03:50 ] >>884 こんなところでわざわざ紹介するならせめてソースくらい付けろよ まあ見るまでもなく想像つくし見ようと思えば見られるけど
889 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:08:26 ] >>884 ソース出せバカ。 出せないならC#スレに書くな。ボケ。
890 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:08:34 ] >>884 regファイルでいいじゃん・・・
891 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:16:34 ] こんな素人丸出しの奴が作ったレジストリを触るプログラムなんて誰が動かすんだよw
892 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:26:32 ] WMEの接続人数を変えたい! │ ├ 1.PCを買い換える │ │ [まちがい] │ 確実な方法ではありますが、お金がかかるのが難点です。 │ それよりも別の手段を探してみませんか? │ ちょっとしたフリーウェアでなんとかなるかも? │ ↑ │ ココがポイント! │ └ 2.RegSeekerを使う [せいかい]
893 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:31:12 ] >>886 >オーバースペック だったらDataGridViewとか無茶やコントロール生まれねえー!
894 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:35:12 ] 日本語書けよ。 なんだその意味不明な一行レス
895 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:37:51 ] や→な タイポですたゴメンナサイ
896 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:41:01 ] そこ直してもやっぱり意味不明だと思いますがw こういう人が質問するとエスパー召喚質問になるんだろうねw
897 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 13:48:36 ] ?複合コントロールとして肥大化しまくった最たるものだろ? オーバースペックならこんなもの生まれない。
898 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:00:12 ] WPFはかなりオーバースペックだが、Windows Formsはそこそこオーバースペック Formsに比べればWPFはよりオーバースペックで、何も矛盾することはない。
899 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:25:41 ] visualC#(Express)の、プロジェクトのプロパティ→リソースで画像ファイルを追加しました。 この画像リソースのアクセスレベルをpublicにするには、 Resources.Designer.csのコードを直接いじくるしかないのでしょうか?
900 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 14:41:48 ] >>898 えーと、WPFはプリミティブコントロールを現在の要求に合わせて 整理している感じなのが重要なんであって上位な複合コントロールが たくさんあったりするわけじゃないぞ。つかその視点ならFormsに劣る
901 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 18:17:48 ] >>882 の1行目が理解出来なんだけど誰か解説頼む。
902 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:36:20 ] ttp://dobon.net/vb/dotnet/programing/plugin.html Assembly.LoadFromで読み込んだAssemblyを保持してないようですが 使ってる最中にアンロードされたりしないんでしょうか?
903 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:43:56 ] Assemblyは一旦AppDomainにロードされたらそのAppDomainがUnloadされない限り残る
904 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:44:50 ] あ、 >Assemblyは って分かりづらいな アセンブリは、と言い換えとこう
905 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:59:05 ] C#でWinAPIって使えないんですか?
906 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:00:06 ] >>903-904 なるほど、よくわかりました。ありがとうございました。
907 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:01:40 ] .NETの色々あるクラスの定義を見たいけどどこにあるんでしょうか? あれ・・スレ違いでしょうか?
908 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:04:14 ] MSDN
909 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:04:34 ] >>905 使える >>907 MSDNじゃ足りないの?
910 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:08:52 ] >>908-909 えっと使い方というか各メンバ(メソッド)の説明はあるんですが その実際のコードはあるのかなと思いまして質問しました MSDNライブラリってそこまでしかないですよね?
911 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 21:12:27 ] VS2008で見れるようになったんじゃなかったっけ
912 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:15:11 ] Image.FromFile等でアニメーションGIFを読み込めますが 複数の画像とフレーム間の時間のデータからプログラム中で Imageを生成するにはどんな感じにすればいいのでしょうか?
913 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 22:49:31 ] GDI+じゃ無理 普通にタイマで描画してくんじゃ駄目なの?
914 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:22:01 ] SelectActiveFrame って使えないの?
915 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:37:48 ] 既存のGIF画像になら使える
916 名前:912 mailto:sage [2008/02/02(土) 23:54:37 ] アプリケーションからはアニメーションなImageは作れないんですか… 自分でアニメーションさせてみます。 ありがとうございました。
917 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:56:45 ] Win32のPtInRectと同等の機能を持つメソッドって.NETにありますか? 今探していますが見つかりません。 Rectangleのスタティックとしてあるのかと思ったらありませんでした。
918 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:57:52 ] gifはファイル構造が比較的単純だから自前でヘッダ書いてく手もあるけどね
919 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:00:17 ] >>917 〜〜と同等の機能じゃなくて言葉で機能を説明しろと まあ普通にRectangleのインスタンスメソッドにあるけどな
920 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:03:30 ] あったあったよく見てなかったわサンクス msdn2.microsoft.com/ja-jp/library/system.drawing.rectangle.contains (VS.80).aspx
921 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 01:33:18 ] サウンド関連で教えてください。 テキストボックスに入力を行った際、エンターキーを押すとシステム設定のエラー音が鳴ってしまいます。 これをプログラム上から鳴らなくするにはどうすればいいのでしょうか? winXP sp2 で VS2005です。
922 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 01:41:29 ] TextBox ビープ音
923 名前:899 mailto:sage [2008/02/03(日) 01:46:57 ] 自己解決しました。2008にはデザイナに項目が追加されてました。
924 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 01:50:50 ] 課題終わらない\(^o^)/
925 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 01:54:02 ] >>924 先生は一人だがお前には俺らがついてる!
926 名前:921 mailto:sage [2008/02/03(日) 02:18:03 ] ググって e.Handled = true; としてもやっぱりBeepは消えてくれません。
927 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 11:46:23 ] インテリセンスで拡張メソッドが候補に表示されるときは頭に「(拡張子)」と表示される しかしMSDNのメンバ一覧では「Extension のメソッド」として記載されてる しかしMSDNではその他の場合は全て「拡張メソッド」 なんだこれ
928 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 11:48:48 ] 英語版使え
929 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:13:04 ] プログラムを発行する際に 特定のファイルも自動的にインストールされるようにするにはどこに置けば良いのか教えてください
930 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:29:47 ] C#の良書があったら教えてください
931 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:49:58 ] プロパティを使うと遅くなるから for文などの繰り返し処理の中では 使わない方がいいと聞いたんですが そういうもんなんですか?
932 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:55:01 ] プロパティの実装による コントロールのプロパティは中で色々やってて遅いのが多いかも フィールドの値を返すだけの単純なプロパティならインライン展開されてほとんど変わらん
933 名前:931 mailto:sage [2008/02/03(日) 14:50:19 ] 今実験してみたら300倍以上違ったwww 簡単な画像処理でテスト。 1: 12889msec 2: 38msec 1.プロパティ使いまくる場合 for (int y = 0; y < bmp.Height; y++){ for (int x = 0; x < bmp.Width; x++){ if (data[y * bmpData.Stride + x * 3] == Color.White.B){ data[y * bmpData.Stride + x * 3] = Color.Black.B; } } } 2.変数を使う場合 int w = bmp.Width; int h = bmp.Height; int yPos; byte white = Color.White.B; byte black = Color.Black.B; for (int y = 0; y < h; y++){ yPos = y * bmpData.Stride; for (int x = 0; x < w; x++){ if (data[yPos + x * 3] == white){ data[yPos + x * 3] = black; } } }
934 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 14:55:44 ] メンバ変数を直接使うのと プロパティを使うのとで 比較しないと。
935 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 14:57:46 ] Bitmap.Width/Heightは中でアンマネージ関数呼んでる Color.White.Bは新しいColor作成→値渡し→ビット演算 どっちも全然単純なプロパティじゃないの
936 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:12:41 ] >>933 のコードはどこがボトルネック?
937 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:15:52 ] bmp.Widthとbmp.Heightかな
938 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:28:52 ] >>933 その例が極端だとしてもこれはいいこと聞いた 定数クラスに新たに用意してそれでやってみる
939 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:32:00 ] は?
940 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:34:52 ] >>939 この話がわからない子は参加しなくていいんじゃないかな
941 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:38:00 ] 荒れる流れストップ >>938 が言ったことを咄嗟に>>939 は想像出来なかった また、他人に伝える意図でないものを>>938 がレス内容に含めたというのにも問題がある
942 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:39:42 ] bmp.Width/Heightが Color.White.Bよりもネックになる理由がわかりません。 どうしてですか?
943 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:45:10 ] VBのForループなら>>933 の前者でも結果あまり変わらなそうだ。 まあとにかく、速度が問題になる場面では可読性犠牲にしてでも(といってもそれで低下する可読性なんてほんの僅かだろうけど) プロパティーをキャッシュして使った方がいいってことか。
944 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:45:41 ] >>942 >>935 怪しいことしてるのはそこくらいだから
945 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:58:56 ] >>942 Color.White.Bがネックにならないのは、コンパイラがそれをリテラルに 置き換えてるからだろうけど、どうしてコンパイラはColor.White.Bの値を 定数扱いしても大丈夫だと知ることができるんだろう・・・
946 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:01:52 ] > コンパイラがそれをリテラルに置き換えてるから 頭沸いてるんですか^^;
947 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:02:51 ] >>946 君頭悪いでしょw
948 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:11:14 ] >>933 MDAの影響は排除してる? ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=521353&SiteID=7
949 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:15:28 ] おまいら!もちつけ! /\⌒ヽペタン / /⌒)ノ ペタン ∧_∧ \ (( ∧_∧ (; ´Д`))' ))(・∀・ ;) / ⌒ノ ( ⌒ヽ⊂⌒ヽ .(O ノ ) ̄ ̄ ̄()__ ) )_)_) (;;;;;;;;;;;;;;;;;;;)(_(
950 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:17:40 ] WebBrowserって、MouseEnterのイベントをサポートしてないのか! なぜだ!?
951 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:18:19 ] それより困るのは、ArrayList.Countじゃね? ArrayListの実装って配列モドキのくせに CountにO(N)かかるんだけど・・・ 一度それでハマったことがある
952 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:20:13 ] は?
953 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:22:13 ] >>951 さすがにそれは嘘だろうと思ってソース見てみたら変数の内容返してたよ。 というわけで少なくとも最新版のArrayListではO(1)。 ソース公開便利だね!
954 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:29:53 ] >>953 そうなんだ 昔のArrayListで while(al.count > 0){ ・・・O(N)の処理 } ってやったらやたら時間がかかって、 しばらく悩んでたらArrayList.countがO(N)で、O(N^2)になってたことがある このときは死ねよと思ったが改善されたなら良かった
955 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:33:21 ] WebBrowserでMouseEnterを受け付ける方法ってありますか? もしくは、WebBrowserの親に通知する方法とか。
956 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:34:11 ] 処理に時間のかかるプロパティは作るな!っていうMSのガイドラインがあるけど あんまり守られてないなw
957 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:34:46 ] forとwhileの違いを教えてください 下記のところを読んでも違いがよくわかりませんでした ひょっとしてforはいらない子なのでしょうか? d.hatena.ne.jp/gallu/20060829/p2
958 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:37:18 ] それを肯定したらC#の存在意義がなくなる foreachもいらないLINQもいらないプロパティもデリゲートもいらない
959 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:37:45 ] >>956 根本的な疑問。 「作るな!」って宣言すれば、本質的に重い処理にならざるを得ないプロパティが 軽くなるの?w
960 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:38:30 ] >>957 むしろwhileがいらない子なんじゃないの
961 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:41:20 ] >>959 重い処理はメソッドにする プロパティだとなんとなくループ中に繰り返し呼び出してもOKかな?という感じがあるから msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpgenref/html/cpconpropertyusageguidelines.asp
962 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:45:03 ] >プロパティだとなんとなくループ中に繰り返し呼び出してもOKかな?という感じがある むしろその感覚の方を修正すべきなのでは? だってそれは単なる願望であって、現実的な認識じゃないでしょ。
963 名前:957 mailto:sage [2008/02/03(日) 16:48:02 ] とくに違いはないということでよろしいのでしょうか?(´・ω・`)
964 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:48:58 ] たしかに、プロパティにルーティンをかけるけど、 実際にどのレベルまで書いていいのかな?って悩む時はあるね。 基本的にメソッドと同じくらいの処理はかけるわけで。。。
965 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:52:02 ] get には return 文しか書けないよう、 set には1文しか書けないよう制限すればいいのに。
966 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:01:08 ] コントロールのプロパティは仕方ないとしても Bitmap.Widthはコスト無いと思うだろ普通
967 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:01:22 ] setだって、配列データをobjectとして渡して、中で分解して使うようにすれば、 実質複数の引数を渡してるのと同じことができるからな。 メソッドと変わりはあんまないような。 つまり、線引きの問題だよな。
968 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:01:27 ] >>965 本末転倒でしょそれは。 プロパティの目的はOOP的な思考モデルに実際のコーディングを近づけることにあるんであって、 処理の効率化のためではない。
969 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:03:11 ] 素朴な疑問なんだけど MSのガイドラインに背いてまで、メソッドではなくプロパティで重い処理をしなければならない 本質的な理由にはどんなものがあるのかな
970 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:05:27 ] do-whileがあればいいのに
971 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:05:59 ] >>969 問題は重いと重くないの境目でしょ。
972 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:07:11 ] >>969 セッターでセットした時にクラス使用者には意識させず対象プロパティ以外の値を変更したいとき
973 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:07:32 ] 今日の話は勉強になった。 次スレも期待
974 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:08:11 ] >>969 愚問だね。 その方がライブラリの使用者にとって直感的なインターフェイスだからでしょ。
975 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:09:51 ] 基本的には、1つに対してのget,setのみの使用でしょう。
976 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:12:55 ] >>955 TrackMouseEvent
977 名前:955 mailto:sage [2008/02/03(日) 17:18:56 ] >>976 あぁ、まさにそれです。 www.thescripts.com/forum/thread268276.html ここに書かれてる内容こそが、今私が悩んでいるところです。 熟読してみます。 どうも。
978 名前:955 mailto:sage [2008/02/03(日) 17:30:10 ] やっかいですね。 これはMFCのプログラミングになっちゃいます。 WM_NCMOUSELEAVEをC#側でdefineしないといけないってことか。
979 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:32:34 ] >>974 しかしプロパティの取得に時間がかかるのは直感的ではない、とw
980 名前:955 mailto:sage [2008/02/03(日) 17:35:47 ] const int WM_CLOSE = 0x0010; const int WM_ENDSESSION = 0x16; const int WM_SYSCOMMAND = 0x112; const int SC_CLOSE = 0xF060; のリストが掲載されているWebページってありますか? もちろん今自分で探していますけど。。。
981 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:37:51 ] 素直にWindows SDK入れとけよ
982 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:38:11 ] >>980 WinUser.h
983 名前:955 mailto:sage [2008/02/03(日) 17:38:40 ] 見つけたけど、肝心の値がないw orz msdn2.microsoft.com/en-us/library/ms645626 (VS.85).aspx
984 名前:955 mailto:sage [2008/02/03(日) 17:41:04 ] >>982 winuser.hにありました。 #define WM_NCMOUSELEAVE 0x02A2 誠にありがとうございます。
985 名前:955 mailto:sage [2008/02/03(日) 17:45:38 ] お礼の意味を込めて次スレを立てときました。 素人発言で気に障ったかたもいらっしゃったと思いますが、 ありがとうございました。 ふらっとC#,C♯,C#(初心者用) Part24 pc11.2ch.net/test/read.cgi/tech/1202028267/
986 名前:955 mailto:sage [2008/02/03(日) 17:52:10 ] WebBrowserだと、WndProcにWM_MOUSELEAVEのイベントがこないですね。。。 それ以外だと来ますが。 Console出力をして確認して気づきました。 一難さってまた一難。
987 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:58:33 ] ここはお前の日記帳じゃない
988 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:01:33 ] 俺は応援してるよ
989 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:05:30 ] >>985 新スレ立てるなら関連スレもはれよ。 中途半端な仕事しやがって。
990 名前:955 mailto:sage [2008/02/03(日) 18:07:48 ] 単にWebBrowserでマウスイベントを検出したいだけなんですけどね。 こんなに苦労をするとは予想外でした。
991 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 19:29:45 ] Document.Bodyのイベントを使うのはダメなのか?
992 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 19:31:50 ] 中身がHTMLDocumentじゃなかったら使えないだろ。
993 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:26:41 ] Application.AddMessageFilterで横どる。色々応用きくからこの際 覚えとけ
994 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:10:10 ] TrackMouseEventで始めないと メッセージすら生成されないと思うのだが