ふらっとC#,C♯,C#(初心者用) Part47
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/11/01(日) 18:23:31「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part45 (実質46)
http://pc12.2ch.net/test/read.cgi/tech/1255658236/
0002デフォルトの名無しさん
2009/11/01(日) 18:24:07C#, C♯, C#相談室 Part55
http://pc12.2ch.net/test/read.cgi/tech/1255530225/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
http://pc12.2ch.net/test/read.cgi/tech/1245384489/
----参考サイト
http://www.google.co.jp/
http://msdn.microsoft.com/ja-jp/library/default.aspx
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/
0003デフォルトの名無しさん
2009/11/01(日) 21:24:18言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0004デフォルトの名無しさん
2009/11/01(日) 21:44:47京都府警の管轄だぞ。
0005デフォルトの名無しさん
2009/11/02(月) 09:57:33ttp://www.pri.kyoto-u.ac.jp/ai/
0006デフォルトの名無しさん
2009/11/02(月) 10:21:320007デフォルトの名無しさん
2009/11/02(月) 11:46:200008デフォルトの名無しさん
2009/11/02(月) 14:03:080009デフォルトの名無しさん
2009/11/02(月) 20:56:50Timer座標変更する以外で方法はありますか?
0010デフォルトの名無しさん
2009/11/02(月) 23:10:550011デフォルトの名無しさん
2009/11/02(月) 23:14:14キチガイがわいたよ
0012デフォルトの名無しさん
2009/11/03(火) 00:04:140013デフォルトの名無しさん
2009/11/03(火) 00:13:130014デフォルトの名無しさん
2009/11/03(火) 02:36:153種類のカラムにデータを表示させています。
これで、1,2番目のカラムは起動時に取得するのですが、
3番目のカラムは、起動後ボタンを押したタイミングで表示するようにしたいのです。
ボタンを押したら、一度ListViewをClearして、3番目のカラムを含むデータを、
再度表示させることも出来るのですが、何番目のアイテムの3番目のカラムデータを、
更新する、ということは出来ませんか?
0015デフォルトの名無しさん
2009/11/03(火) 04:17:59ListView.Items[n番目].SubItem[2].Text
0016デフォルトの名無しさん
2009/11/03(火) 11:00:20http://hogehoge.com/hoge/1.1
http://hogehoge.com/hoge/1.2
とか微妙に違う場合、DOMから名前空間を取得してXmlNamespaceManagerにaddするか
DOMから名前空間削除しちゃうか
って選択肢があるんですが、取得するメリットってなんでしょうか
特定の名前空間しか受付ないって仕様なら納得できますが
取得してaddするくらいなら削除した方がただしいような気がします
ご意見お願いします
0017デフォルトの名無しさん
2009/11/03(火) 11:31:04ありがとうございます。解決しました。
0018デフォルトの名無しさん
2009/11/03(火) 11:45:19名前空間が何で(どういう場面で)必要なのか考えれば自明。
0019デフォルトの名無しさん
2009/11/03(火) 14:06:25xml要素がDOMの中で重合しない限り名前空間など無用ってことですね?
0020デフォルトの名無しさん
2009/11/03(火) 17:06:49処理が終わったら表示を更新する・・・のようなものはありませんか?
update..とかで何か出来た気がするのですが・・・
0021デフォルトの名無しさん
2009/11/03(火) 17:13:040022デフォルトの名無しさん
2009/11/03(火) 18:28:28それです!
やってみますね、ありがとうございました。
0023デフォルトの名無しさん
2009/11/04(水) 03:58:29C++、C#できますと言ったら、面接官(多分SE?)にC#って何?って言われたw
0024デフォルトの名無しさん
2009/11/04(水) 04:07:470025デフォルトの名無しさん
2009/11/04(水) 04:32:540026デフォルトの名無しさん
2009/11/04(水) 04:55:320027デフォルトの名無しさん
2009/11/04(水) 08:13:340028デフォルトの名無しさん
2009/11/04(水) 08:34:230029デフォルトの名無しさん
2009/11/04(水) 10:37:42その面接官をこのスレに連れてきなさい!
(やってきた)
仕事くださいお願いしますorz
0030デフォルトの名無しさん
2009/11/04(水) 11:32:59どのくらい説明できるか試したんじゃない?
0031デフォルトの名無しさん
2009/11/04(水) 11:40:180032デフォルトの名無しさん
2009/11/04(水) 11:44:560033デフォルトの名無しさん
2009/11/04(水) 11:45:410034デフォルトの名無しさん
2009/11/04(水) 12:29:170035デフォルトの名無しさん
2009/11/04(水) 12:32:59なるべく正規表現使わない方法で
0036デフォルトの名無しさん
2009/11/04(水) 12:34:57まあ36文字ぐらいならchar配列で持っておいてループでチェックしても良いんじゃね
0037デフォルトの名無しさん
2009/11/04(水) 12:42:08まあChar.IsLowerとChar.IsNumber使うのかな
0038デフォルトの名無しさん
2009/11/04(水) 12:43:300039デフォルトの名無しさん
2009/11/04(水) 12:48:18全角とか色々引っかかるから不可よん
0040デフォルトの名無しさん
2009/11/04(水) 12:57:14stringのままだと不等号が通らなかったので
char[] ch = al.ToCharArray();
if ((ch[0] < 'a' || ch[0] > 'z') || (ch[0] < '0' || ch[0] > '9'))
としてみました。
これではまずいでしょうか?
0041デフォルトの名無しさん
2009/11/04(水) 13:15:070042デフォルトの名無しさん
2009/11/04(水) 13:25:03if ((ch[0] < 'a' || ch[0] > 'z') && (ch[0] < '0' || ch[0] > '9'))
0043デフォルトの名無しさん
2009/11/04(水) 13:27:57エンコーディング指定すれば問題ない
0044デフォルトの名無しさん
2009/11/04(水) 13:35:460045デフォルトの名無しさん
2009/11/04(水) 13:39:350046デフォルトの名無しさん
2009/11/04(水) 13:51:04Windowsでの実装を考えています
C#ではウィンドウを持つプロセスからタスクバーに表示される文字列を取得できることは調べてわかりました
しかし,これではファイルのパスやファイルの実行時刻,さらにはファイル名がタスクバーに表示されなければファイル名も取得することができません
Windowsのどこかにファイルの使用履歴を保存している情報があれば,そこから取得できるかなと思っているのですが・・・
0047デフォルトの名無しさん
2009/11/04(水) 13:59:29//string に入ってる一文字がa-z 0-9 の半角小文字
}
0048デフォルトの名無しさん
2009/11/04(水) 15:54:580049デフォルトの名無しさん
2009/11/04(水) 16:05:38他には辞書型にマッチする文字を全部放り込んでしまうとかが考えられるけど、
まあ正規表現を使うのが一番簡単。
なぜそれを避ける必要があるのかが逆に分からんな。
0050デフォルトの名無しさん
2009/11/04(水) 17:34:300051デフォルトの名無しさん
2009/11/04(水) 17:46:380052デフォルトの名無しさん
2009/11/04(水) 17:53:020053デフォルトの名無しさん
2009/11/04(水) 17:53:450054デフォルトの名無しさん
2009/11/04(水) 18:04:21全角の1とかaまでマッチするだろ。あほは黙ってなさい
0055デフォルトの名無しさん
2009/11/04(水) 18:05:25.NETの標準ライブラリにはIsLowerとIsNumberはCharにしかなくて、
どっちもEncodingは引数に取らないんだが……
一体どういう操作なの?
0056デフォルトの名無しさん
2009/11/04(水) 18:21:490057デフォルトの名無しさん
2009/11/04(水) 18:24:30005835
2009/11/04(水) 18:24:520059デフォルトの名無しさん
2009/11/04(水) 18:26:420060デフォルトの名無しさん
2009/11/04(水) 21:00:29ASCIIコード相当の文字セットはユニコード内で同じ値がマッピングされてるから
127以下 = 半角英数字と思って良い。
string text = "123";
if ((int)text[0] < 128) // is ASCII code
if (Char.IsLower(text[0]) || Char.IsNumber(text[0]))
Console.WriteLine("Lower or Number.");
0061デフォルトの名無しさん
2009/11/05(木) 03:21:070062デフォルトの名無しさん
2009/11/05(木) 03:39:46プンプン
0063デフォルトの名無しさん
2009/11/05(木) 04:34:12何か違うのか?
c言語
int x=30;
int*p;
p=&x;//pには、1923536みたいな数値が入ってる
で、アドレス1923536に30という数値が入る。
d#
TestClass tc = new TestClass();
tc.x=30;
tcには1923536みたいな数値が入ってる
で、アドレス1923536に30が格納されるんだろ?
何か間違ってる?
0064デフォルトの名無しさん
2009/11/05(木) 04:41:23だからアクサンやセディーユやウムラウトはどうなる。
0065デフォルトの名無しさん
2009/11/05(木) 04:45:44C#の参照はオブジェクトのアドレスを直接指していない(オブジェクトはいつ移動するかわからないから)。
値を自由に変更できない(現存するオブジェクトを指すかnullかしかなく、適当なアドレスを指したりできない)。
キャストが自由にできない(Cのポインタのように全く関係ない型に変換できない)。
0066デフォルトの名無しさん
2009/11/05(木) 05:29:25unsafe使ってもメモリ管理面ではc言語より弱いのか。
無理やり型キャストしてデータ書き換えするとコンピューターが内部でどんな動きをしてるか実際にチェックできて楽しかったのに残念だのぉ。
0067デフォルトの名無しさん
2009/11/05(木) 05:47:40unsafe使えば他のアプリケーションに干渉することが可能かね。
0068デフォルトの名無しさん
2009/11/05(木) 05:49:590069デフォルトの名無しさん
2009/11/05(木) 06:03:07コマンドプロンプトの文字をA⇒Cにしたりとか
そういううやつ。
アセンブリ?で無理やりアドレス書き換えたらできるようなやつ。
0070デフォルトの名無しさん
2009/11/05(木) 06:17:230071デフォルトの名無しさん
2009/11/05(木) 06:31:52unsafe使ったら
他のプログラムに干渉できた!
unsafe private void Form1_Load(object sender, EventArgs e)
{
try
{
int* p;
p = (int*)12345678;
this.Text = ((int)*p).ToString();
}
catch
{
MessageBox.Show("他のプログラムが使用中です");
}
}
ここでテキストボックスとかに入力したアドレスに直接干渉できる
うまく使えばメモリマスターになれるなC#すごいな
0072デフォルトの名無しさん
2009/11/05(木) 06:58:060073デフォルトの名無しさん
2009/11/05(木) 07:03:400074デフォルトの名無しさん
2009/11/05(木) 07:14:31仮想メモリについて勉強しような。
0075デフォルトの名無しさん
2009/11/05(木) 07:20:45それ他のプログラムのメモリを指してないと思うけど
0076デフォルトの名無しさん
2009/11/05(木) 07:24:580077デフォルトの名無しさん
2009/11/05(木) 09:16:030078デフォルトの名無しさん
2009/11/05(木) 09:27:11だよな?
0079デフォルトの名無しさん
2009/11/05(木) 09:34:350080デフォルトの名無しさん
2009/11/05(木) 09:38:03sの意味を詳しく
0081デフォルトの名無しさん
2009/11/05(木) 09:39:560082デフォルトの名無しさん
2009/11/05(木) 10:38:320083デフォルトの名無しさん
2009/11/05(木) 10:51:56@"hoge"
とかいうやつです。
0084デフォルトの名無しさん
2009/11/05(木) 10:53:34ttp://msdn.microsoft.com/ja-jp/library/aa691090(VS.71).aspx
0085デフォルトの名無しさん
2009/11/05(木) 10:57:12ありがとうございます。なんとなくわかりました。
自分的には@は使わなくてよさそうです。
0086デフォルトの名無しさん
2009/11/05(木) 11:08:070087デフォルトの名無しさん
2009/11/05(木) 13:24:41@"c:\windows\system32"ってするだろ
0088デフォルトの名無しさん
2009/11/05(木) 13:29:590089デフォルトの名無しさん
2009/11/05(木) 13:33:260090デフォルトの名無しさん
2009/11/05(木) 13:40:370091デフォルトの名無しさん
2009/11/05(木) 14:01:400092デフォルトの名無しさん
2009/11/05(木) 14:10:55VistaのPCで何故かWebClientの例外が発生します。
自分でVistaの開発環境を持てばいいのですがそれが出来ず困ってます。
0093デフォルトの名無しさん
2009/11/05(木) 14:15:290094デフォルトの名無しさん
2009/11/05(木) 14:30:47>>42でとりあえず実装してますがまずいですかね?
0095デフォルトの名無しさん
2009/11/05(木) 14:34:08・・・なんでもいいけどテストちゃんとしろよな
0096デフォルトの名無しさん
2009/11/05(木) 14:52:350097デフォルトの名無しさん
2009/11/05(木) 14:54:06e.Massageで取得した文は
WebClient要求がで例外が発生しました。
こうなんですが、
具体的な内容では無いので、どうするべきか迷ってました。
0098デフォルトの名無しさん
2009/11/05(木) 15:03:020099デフォルトの名無しさん
2009/11/05(木) 15:04:090100デフォルトの名無しさん
2009/11/05(木) 15:09:38なんで自分で書いちゃうんだよwwww
0101デフォルトの名無しさん
2009/11/05(木) 15:16:01それが特定できないんです、
エラー構文にその処理位置を特定するようにしてませんでしたので;
>>99
Webclient.DownloadFileAsync(downUri, fileName)で開始し、
イベントハンドラDownloadFileCompletedで、e.Error != nullのとき、
WebClient例外が発生します。これだけでは特定できませんか?
0102デフォルトの名無しさん
2009/11/05(木) 15:19:18program filesの下とかさ
0103デフォルトの名無しさん
2009/11/05(木) 15:19:300104デフォルトの名無しさん
2009/11/05(木) 15:22:15いっぱい情報があるだろうが。
その辺を全部出せ。
0105デフォルトの名無しさん
2009/11/05(木) 15:23:550106デフォルトの名無しさん
2009/11/05(木) 15:29:500107デフォルトの名無しさん
2009/11/05(木) 15:32:250108デフォルトの名無しさん
2009/11/05(木) 16:00:210109デフォルトの名無しさん
2009/11/05(木) 16:13:46恐らく制限に引っ掛かってるんじゃね?
0110デフォルトの名無しさん
2009/11/05(木) 16:23:13これを自分で設定することって出来ないかな?
WebClientとかHttpWebRequestだとProxyプロパティがあって設定出来るんだけどいくら探してもそれっぽいのが見つからない
0111デフォルトの名無しさん
2009/11/05(木) 16:36:45かわいい幽霊の画像を用意して
ゆっくりと透明度を上げ下げすれば、簡単にうらめし屋のできあがりだな。
0112デフォルトの名無しさん
2009/11/05(木) 16:39:590113デフォルトの名無しさん
2009/11/05(木) 16:44:17利用者向けのメッセージだったので、Error.Messageしか表示させてませんでした。
Vistaの方に協力してもらいやってますので、それから質問するべきでしたね。
>>102
SystemDriveでルート取得して、その直下にファイルをDLしているのですが、
VistaだとSystemDrive取得出来なかったりします?
0114デフォルトの名無しさん
2009/11/05(木) 16:45:18自己レス
WinInetのInternetSetOption()で出来る気がしてきたからちょっとやってみるわ
0115デフォルトの名無しさん
2009/11/05(木) 16:49:13Vistaでシステムドライブ直下は書き込めないよ
Vistaのセキュリティは万全なのだ
0116デフォルトの名無しさん
2009/11/05(木) 17:25:37UACを無効にすると、普通に起動することが出来ました。
>>115どうやらそのようですね・・・
ユーザに気づかれないようにファイルをDLしてきて、処理をしたかったのですが、
となると、皆さんならどこに保存しますか?
0117デフォルトの名無しさん
2009/11/05(木) 17:29:34ログインユーザーのデスクトップとかマイドキュメントとか
0118デフォルトの名無しさん
2009/11/05(木) 17:32:42そうですよね、マイドキュメントでやってみようと思います。
ありがとうございました。
0119デフォルトの名無しさん
2009/11/05(木) 17:39:450120デフォルトの名無しさん
2009/11/05(木) 17:44:100121デフォルトの名無しさん
2009/11/05(木) 17:48:49UAC無効
普段の面倒さよりウィルスのほうがやな人
UAC有効
0122デフォルトの名無しさん
2009/11/05(木) 17:52:19自己解決しました
0123デフォルトの名無しさん
2009/11/05(木) 18:34:17いやまて、ファイルをユーザーに見せたくないんなら
Temp とかある程度永続が必要なら Local AppData
あたりじゃないのか
0124デフォルトの名無しさん
2009/11/05(木) 19:42:15まずいっていうか明らかにおかしいじゃん。もう正解でてるよ
0125デフォルトの名無しさん
2009/11/05(木) 19:54:49using System;
を入れなくてもintやstringを使用できるのはなぜ?
0126デフォルトの名無しさん
2009/11/05(木) 20:21:30System.Stringの別名がstring
System.Int32の別名がint
※規制解除かな・・・テスト兼
0127デフォルトの名無しさん
2009/11/05(木) 22:03:44うーむ・・・>>60ですか?
0128デフォルトの名無しさん
2009/11/05(木) 22:11:36C#なんてなくてもaccess2007で十分じゃん。ランタイムも無料になったし。
と言われました。
なんか腹が立ちます。
C#の優位点を教えてください。
今、C#を猛烈に勉強しているので悔しいんです。
よろしくお願いいたします。
0129デフォルトの名無しさん
2009/11/05(木) 22:14:260130デフォルトの名無しさん
2009/11/05(木) 22:14:310131デフォルトの名無しさん
2009/11/05(木) 22:17:37Accessで十分な用途ならそりゃAccessでやった方が楽だ
AccessでPythonの処理系作れるか?
0132デフォルトの名無しさん
2009/11/05(木) 22:19:20accessの方が役に立つだろうから
その人が正しいといえなくもない
0133デフォルトの名無しさん
2009/11/05(木) 22:22:15あと同時に複数で使うと論理破壊が起るでしょ?
0134デフォルトの名無しさん
2009/11/05(木) 22:23:42JavaとC#とかならまだ議論しようがあるけど。
0135デフォルトの名無しさん
2009/11/05(木) 22:24:25C#とSQLServerとか使ってたら「ば〜かぁ」って言われるだろうけど
それ以外使い道ないじゃんAccess
0136デフォルトの名無しさん
2009/11/05(木) 22:24:340137デフォルトの名無しさん
2009/11/05(木) 22:27:530138デフォルトの名無しさん
2009/11/05(木) 22:28:320139デフォルトの名無しさん
2009/11/05(木) 22:30:050140デフォルトの名無しさん
2009/11/05(木) 22:33:540141デフォルトの名無しさん
2009/11/05(木) 22:58:340142デフォルトの名無しさん
2009/11/05(木) 22:59:100143デフォルトの名無しさん
2009/11/05(木) 23:52:01劣っている点は心当たりあるけど。
…AccessはDBそのもので作業が楽。
同じものを作成するといってもC#の方が8倍くらいの時間がかかると思う。
0144デフォルトの名無しさん
2009/11/05(木) 23:53:110145デフォルトの名無しさん
2009/11/05(木) 23:53:140146デフォルトの名無しさん
2009/11/05(木) 23:55:28mp3の再生を行っています。
このとき、繰り返し再生機能を実装したいのですが、
どのように書けば良いのでしょうか?
また、WMPのUI上で停止ボタンが押された場合のイベントは有りませんよね。。
0147デフォルトの名無しさん
2009/11/05(木) 23:56:00Accessに負ける?
0148デフォルトの名無しさん
2009/11/05(木) 23:57:24負ける。
ただ、Accessのフォームはどうも見た目が安っぽいんだよね。
0149デフォルトの名無しさん
2009/11/05(木) 23:58:16負けねーよ。馬鹿。
表入力は劣るけど。
0150デフォルトの名無しさん
2009/11/06(金) 00:02:170151デフォルトの名無しさん
2009/11/06(金) 00:06:46Settings あたりにあるだろ確か
イベントは MouseDown とかそんなのなかったか?
俺は C++ で COM 直でしかいじったことないからあいまい
だけど
0152デフォルトの名無しさん
2009/11/06(金) 00:08:310153デフォルトの名無しさん
2009/11/06(金) 00:11:53それを言うならもうとっくにお亡くなりになったロータスのAproachは
もっとお手軽だった気もしたけど。
0154デフォルトの名無しさん
2009/11/06(金) 00:15:44それはそれで楽っちゃ楽なんだけれど、きっちり作り込もうとすると融通が利かなかったり
VBAであれこれ書かなきゃいけなかったりするのよねぇ
0155デフォルトの名無しさん
2009/11/06(金) 00:16:200156デフォルトの名無しさん
2009/11/06(金) 00:33:060157デフォルトの名無しさん
2009/11/06(金) 00:35:52try{
通常書き込み
}
catch(ArashiException){
むし
}
0158デフォルトの名無しさん
2009/11/06(金) 01:00:54salesforce は表で編集するの苦手だからなぁ
1レコードづつフォーム開いて編集するの限定なら代わりになるが・・・
0159デフォルトの名無しさん
2009/11/06(金) 01:37:52マルチスレッドも使えないし
0160デフォルトの名無しさん
2009/11/06(金) 02:18:18while(true){
if (マウスがクリックされてる){
なんかする
}
0.0001秒待機する
}
みたいな処理をやってるの?
裏では大量のwhile分がマウスやキーボードのチェックを行ってるの?
0161デフォルトの名無しさん
2009/11/06(金) 02:37:270162デフォルトの名無しさん
2009/11/06(金) 04:38:56hはhour、mはminute、sはsecondをあらわすのはいいとして
ミリ秒をあらわすfって何の略よ?
0163デフォルトの名無しさん
2009/11/06(金) 04:49:200164デフォルトの名無しさん
2009/11/06(金) 07:44:18ミリ秒ではなく秒の端数
0165デフォルトの名無しさん
2009/11/06(金) 16:06:23http://homepage2.nifty.com/tsugu/sotuken/rotation/
のサンプルをC#で動かすためにいじってみましたが
最後のサンプルで計算領域がはずれてしまい、画像が大きくゆがむ現象で困ってます
アルゴリズムのどこかがコンパイルは通るもののCとC#の言語仕様で
うまくいかないようです
ちなみに最初に出てくるサンプルはちょっと変更を加えると動きました
高速化ってのを試したいんですが・・・
0166デフォルトの名無しさん
2009/11/06(金) 21:40:41うまくいかないコードを晒せ
0167デフォルトの名無しさん
2009/11/06(金) 22:04:33//画像回転
public void MapRotat(double A, int DstCX, int DstCY, int SrcCX, int SrcCY)
{
Bitmap BmpBufRot = new Bitmap(BmpSource.Width, BmpSource.Height);
//http://homepage2.nifty.com/tsugu/sotuken/rotation/
// SrcCX, SrcCY : 入力画像の中心座標
// DstCX, DstCY : 出力画像の中心座標
// : 入力画像の幅高さ
int SrcWidth = BmpSource.Width;
int SrcHeight = BmpSource.Height;
// : 出力画像の幅高さ
int DstWidth = BmpBufRot.Width;
int DstHeight = BmpBufRot.Height;
// pSrcImg : 入力画像ポインタ
// pDstImg : 出力画像ポインタ
// A : 回転角度(ラジアン)
// PI : 円周率(3.14159265358979323846)
int int_sin; //SIN値に1024を掛けて整数にした値
int int_cos; //COS値に1024を掛けて整数にした値
int x1, y1; //入力画像内の座標
int x2, y2; //出力画像内の座標
int x1_mult, y1_mult; //入力画像内走査用変数(1024を掛けた値)
int StX, StY; //入力画像内の走査開始点座標
int DXX, DXY; //入力画像走査時のXループ内の増分
int DYX, DYY; //入力画像走査時のYループ内の増分
0168デフォルトの名無しさん
2009/11/06(金) 22:06:50int_sin = (int)(Math.Sin(A) * 1024);
int_cos = (int)(Math.Cos(A) * 1024);
//走査開始点の計算
StX = int_cos * (-DstCX) - int_sin * (-DstCY) + (SrcCY << 10);
StY = int_sin * (-DstCX) + int_cos * (-DstCY) + (SrcCY << 10);
//Xループ内の増分を計算
DXX = int_cos;
DXY = int_sin;
//Yループ内の増分を計算
DYX = int_sin;
DYY = int_cos;
0169デフォルトの名無しさん
2009/11/06(金) 22:07:39//出力画像の座標でループを行う
for (y2 = 0; y2 < DstHeight; y2++)
{
//走査用変数の初期化
x1_mult = StX + y2 * DYX;
y1_mult = StY + y2 * DYY;
//走査用変数にXループ内の増分値を加算
for (x2 = 0; x2 < DstWidth; x2++, x1_mult += DXX, y1_mult += DXY)
{
//走査用変数から入力画像内の座標を取得
x1 = x1_mult >> 10;
y1 = y1_mult >> 10;
//入力画像内の座標が有効な値ならコピーを行う
if (x1 >= 0 && x1 < SrcWidth && y1 >= 0 && y1 < SrcHeight)
{
BmpBufRot.SetPixel(y2, x2, BmpSource.GetPixel(y1, x1));
}
}
}
Graphics g = Graphics.FromImage(BmpBuf);
g.Clear(Color.Blue);
int x = (BmpBuf.Width - BmpBufRot.Width) / 2;
int y = (BmpBuf.Height - BmpBufRot.Height) / 2;
g.DrawImage(BmpBufRot, x, y);
g.Dispose();
this.Image = BmpBuf;
}
0170rrr
2009/11/06(金) 23:25:530171デフォルトの名無しさん
2009/11/07(土) 00:29:27× StX = int_cos * (-DstCX) - int_sin * (-DstCY) + (SrcCY << 10);
○ StX = int_cos * (-DstCX) - int_sin * (-DstCY) + (SrcCX << 10);
0172デフォルトの名無しさん
2009/11/07(土) 00:38:58こいつが原因くさいか。
0173デフォルトの名無しさん
2009/11/07(土) 09:43:17変更してテストしてみました
やはり現象はほぼ同じです
180度回転はうまくいきます
90度回転は (x1 >= 0 && x1 < SrcWidth && y1 >= 0 && y1 < SrcHeight)の領域に入ってこないので
描画されません
中間の角度で描画されない部分とゆがむ部分がでてきます
ピクセルの位置の増分を決定している変数
x1_mult
y1_mult
が適切でないっぽいですね
しかし理屈が理解できてないのでどこが間違いかわかりません
0174デフォルトの名無しさん
2009/11/07(土) 11:54:32最初から回転を考えててコピー元、コピー先ともに正方形にしてたからです
たまたまですね
0175デフォルトの名無しさん
2009/11/07(土) 12:15:03ネタ元ページの走査開始点の式に出力画像の幅高さが出てこないのが変。
アイデアとしては、図の通り斜めにコピーするのは納得できる。
でも、コピー先の領域(出力画像の幅高さ)を適用しないと、コピー元での走査
開始点座標が求まるはずが無い。
幾何学的意味は、回転中心を元先で合わせて、先領域を回転させて先領域の
(0,0)が該当する位置を、元領域での走査開始点とするから。
よって、式が疑わしい。
回転の中心と画像の中心をごっちゃにして間違ってるんじゃないかなコレ?
書かれているように画像の中心なら幅高さとは別に用意されてる意味がない。
0176デフォルトの名無しさん
2009/11/07(土) 12:31:00そうなんですか
じゃー動くやつであとはLockBitsして高速化してみます
abc[def]ghi があるとして、
[と]の間にある文字列を取得する場合はどのように書けばいいのでしょう
0178デフォルトの名無しさん
2009/11/07(土) 13:49:580179デフォルトの名無しさん
2009/11/07(土) 13:52:18String#Substring メソッド
0180デフォルトの名無しさん
2009/11/07(土) 13:56:21Regex
0181デフォルトの名無しさん
2009/11/07(土) 14:18:07セダンの運転手を雇ってる人が一番エライ
Access使いだろうがC#使いだろうがただのしもべ
0182デフォルトの名無しさん
2009/11/07(土) 14:26:560183デフォルトの名無しさん
2009/11/07(土) 14:36:22× int_sin = (int)(Math.Sin(A) * 1024);
× int_cos = (int)(Math.Cos(A) * 1024);
○ int_sin = -(int)(Math.Sin(-A) * 1024);
○ int_cos = (int)(Math.Cos(-A) * 1024);
× DYX = int_sin;
○ DYX = -int_sin;
× BmpBufRot.SetPixel(y2, x2, BmpSource.GetPixel(y1, x1));
○ BmpBufRot.SetPixel(x2, y2, BmpSource.GetPixel(x1, y1));
で動いた。
0184中学生
2009/11/07(土) 14:36:420185デフォルトの名無しさん
2009/11/07(土) 15:02:550186デフォルトの名無しさん
2009/11/07(土) 15:05:060187デフォルトの名無しさん
2009/11/07(土) 15:30:03うおおお 神! ばっちりでした!
0188デフォルトの名無しさん
2009/11/07(土) 15:49:360189デフォルトの名無しさん
2009/11/07(土) 16:21:541つ目必要ないし
0190デフォルトの名無しさん
2009/11/07(土) 16:45:42必要。
>>189
ああっっ、いらんわ確かに。
0191デフォルトの名無しさん
2009/11/07(土) 17:15:24プレイリストを作り順再生/ランダム再生を行おうと思い、
AxWMP.currentPlaylist.appendItem(newsong);
こうすれば追加は可能ですが、
何番目の曲をプレイリストから削除することや、
現在プレイリストに入ってる曲をリストボックスに表示する方法が分かりません。
プレイリストを配列で取得・・・できるようなメソッドはありませんよねぇ・・・
0192デフォルトの名無しさん
2009/11/07(土) 17:27:17IWMPPlaylist.Item (VB and C#)
The Item property (the get_Item method in C#) gets an interface to the media item at the specified index.
とか
IWMPPlaylist.count (VB and C#)
The count property gets the number of media items in a playlist.
とか
IWMPPlaylist.removeItem (VB and C#)
The removeItem method removes the specified media item from the playlist.
とかあるけど、駄目なのか?
0193デフォルトの名無しさん
2009/11/07(土) 20:48:35ありがとうございます
>>190
了解です ありがとうございました
0194デフォルトの名無しさん
2009/11/07(土) 20:48:510195デフォルトの名無しさん
2009/11/07(土) 20:50:44>>173
モバイル環境で開発してるみたいだけど、PixtureBoxもGraphicsも使えるんだろ?
そしたら拡大だろうが回転だろうがその範囲で自由にできると思うんだけど。
なぜそれくらいでゴリゴリベタなバイナリを触ろうとするのかがよく分からないな。
0196デフォルトの名無しさん
2009/11/07(土) 21:22:530197デフォルトの名無しさん
2009/11/07(土) 22:18:40軒並みアウトで作ってからシコシコとプロパティ設定とかだしな。
まあしかし、手作り感がたまらないという。なんというかマゾヒズム?
0198デフォルトの名無しさん
2009/11/07(土) 22:43:07binのDebutにexeができて
ビルドを選んだらReleaseにexeができるけど
ビルドで作られたexeとDebugのexeはなんか違いあるの?
0199デフォルトの名無しさん
2009/11/07(土) 22:49:540200デフォルトの名無しさん
2009/11/07(土) 23:03:370201デフォルトの名無しさん
2009/11/08(日) 06:31:04AxWMPのプレイリスト機能を使うのではなく、
配列でプレイリストのかわりにURIを持ち、
PlayStateChangeイベントハンドラで
再生終了後、配列から次のURIを読むようにしているのですが、
axwmp.Ctlcontrols.stop();
axwmp.URL = SongsPlaylist[i].ToString();
axwmp.Ctlcontrols.play();
この最後のplayメソッドが働らいていないようです。
これはどうすれば良いでしょうか?
0202デフォルトの名無しさん
2009/11/08(日) 09:07:220203デフォルトの名無しさん
2009/11/08(日) 13:02:12ありがとうございます。
URIが送られてPlayStateChangeイベントが発生したからのようですね。
初歩的なことでした;ありがとうございました。
0204デフォルトの名無しさん
2009/11/08(日) 14:49:35次手を出すなら何が良いと思いますか?
0205デフォルトの名無しさん
2009/11/08(日) 14:54:520206デフォルトの名無しさん
2009/11/08(日) 14:55:24.NETつながりでIronPython、、つまりPythonとかどうよ
0207デフォルトの名無しさん
2009/11/08(日) 14:55:35プログラミング言語はプログラムを作る道具であって、
それに手を出すこと自体に意味があるわけではないよ。
とはいえ異なるプログラミング言語に触れることで思考の引き出しは増えていくので、
暇があるときに他の言語を試してみるというのも悪い話ではない。
0208デフォルトの名無しさん
2009/11/08(日) 15:02:31引き出しを増やすならHaskellを勧める。
0209デフォルトの名無しさん
2009/11/08(日) 15:11:460210デフォルトの名無しさん
2009/11/08(日) 15:49:13キーロックと画面を横にしたりするのを実装したいんですが
どうしたらいいんでしょうか?
さっきから探してるんですがヒントさえ見つかりません
0211デフォルトの名無しさん
2009/11/08(日) 15:55:48オブジェクト指向を極めたぞ!とかならまだしも。
0212デフォルトの名無しさん
2009/11/08(日) 16:08:07いかに優れたアプリケーションを作るかの方が大事だよ
0213デフォルトの名無しさん
2009/11/08(日) 16:14:38.NETを極めたぞ、とかならそれなりに意味があると思う。
それだけでも仕事取れるんじゃない?
0214デフォルトの名無しさん
2009/11/08(日) 16:15:18車種によって特性があるじゃないか。
車なんてどうせ手段だし極めるもなにもないような・・・
運転を極めたぞ!とかならまだしも。
と、特定車のスレで言い放っているのと同じだぜ、それ。
0215デフォルトの名無しさん
2009/11/08(日) 16:15:26手段を極めることとは、すなわち生産性を高めることだろ
0216デフォルトの名無しさん
2009/11/08(日) 16:16:05>オブジェクト指向を極めたぞ!
すごく胡散臭さを感じるw
0217デフォルトの名無しさん
2009/11/08(日) 16:19:44生産性高めるのって言語に対する習熟より他の部分に依る部分の方が大きくない?
0218デフォルトの名無しさん
2009/11/08(日) 16:21:010219デフォルトの名無しさん
2009/11/08(日) 16:21:34よくわかってないなら黙ってろカス
お前がC#の深さを全然知らんだけだろ
0220デフォルトの名無しさん
2009/11/08(日) 16:24:40マジレスすると、VB、C# ってきたらあとはPython、Perl、Rubyあたりのスクリプト言語に慣れとくと
色々便利じゃないかね。
0221デフォルトの名無しさん
2009/11/08(日) 16:25:46その言語つかって思い通りのソフト作れるってこと?
0222デフォルトの名無しさん
2009/11/08(日) 16:31:540223デフォルトの名無しさん
2009/11/08(日) 16:35:510224デフォルトの名無しさん
2009/11/08(日) 16:43:110225デフォルトの名無しさん
2009/11/08(日) 16:55:320226デフォルトの名無しさん
2009/11/08(日) 17:00:08もっと別種の知識が必要で、それさえあればあとはその言語の仕様書さえあれば
極めてなくても作れると思うぞ。
0227デフォルトの名無しさん
2009/11/08(日) 17:19:490228デフォルトの名無しさん
2009/11/08(日) 17:20:48極めるってほどじゃないと思う。
言語を極めてもクラスライブラリを使いこなせなけりゃ意味ないんだから
.NET の CLR と クラスライブラリを極めないと…。
0229デフォルトの名無しさん
2009/11/08(日) 17:23:430230デフォルトの名無しさん
2009/11/08(日) 17:26:560231デフォルトの名無しさん
2009/11/08(日) 17:47:24それだけのためにtimerを利用するのもどうかと思いますし、
同じスレッドで他の処理はしたいので、Threading.Thread.Sleepは使えません。
こんな時に使えるモノはないでしょうか?
0232デフォルトの名無しさん
2009/11/08(日) 17:48:100233デフォルトの名無しさん
2009/11/08(日) 17:50:43Timerでいいよ
0234デフォルトの名無しさん
2009/11/08(日) 17:51:58その上でネイティブの C をちゃんと覚えれば無敵状態になれるかもよ。
0235デフォルトの名無しさん
2009/11/08(日) 17:57:070236デフォルトの名無しさん
2009/11/08(日) 18:00:560237デフォルトの名無しさん
2009/11/08(日) 18:06:31用途に合うかどうかは知らないが、
フォームの表示が済んだらすぐ程度でよかったらShownイベントでいいんでない?
0238デフォルトの名無しさん
2009/11/08(日) 18:24:00それともメソッドにすべき?
0239デフォルトの名無しさん
2009/11/08(日) 18:44:04それは試してましたが、
Loadから呼ばれる関数内から300ミリ待たせたかったので、
Shownだと早すぎてアウトみたいです。
とりあえず暫定的にタイマー使っておこうかと思います。
0240デフォルトの名無しさん
2009/11/08(日) 19:45:54さすがにそれは絶対ダメ
メソッドどころか専用のクラス作ってもいいくらいだ
0241デフォルトの名無しさん
2009/11/08(日) 20:31:19だめですか・・・
大人しく SetXX と IsXX を作ります。
ガイドライン見てみるとたしかに書いてありますね。
http://msdn.microsoft.com/ja-jp/library/ms229054.aspx より
>以下の場合は、プロパティではなくメソッドを使用してください。
> 操作がフィールド セットの場合よりも格段に低速の場合。
> スレッドのブロックを避けるために非同期バージョンの操作を提供することも検討している場合は、
> プロパティでは操作の負荷が大きくなりすぎる可能性があります。
> 特に、初期化時以外にもネットワークやファイル システムにアクセスする操作は、
> 多くの場合、プロパティではなく、メソッドにする必要があります。
多くの場合って書いてあるけど、例外的にOKな場合もあるんだろか・・・
0242デフォルトの名無しさん
2009/11/08(日) 20:38:400243デフォルトの名無しさん
2009/11/08(日) 20:49:390244デフォルトの名無しさん
2009/11/08(日) 21:27:07論理値でだとすると微妙。
一度にfalse/trueにする機能ならメソッド推奨。
複数コントロールのenable値の組み合わせは論理値じゃ返せないだろうし、
そしてget無しのset専用プロパティはガイドライン違反だから。
※ 無理矢理にでも返すとか言い出すなら「ご勝手に」かな。
0245デフォルトの名無しさん
2009/11/08(日) 22:22:27HogeControl.Enadled = true; これで他のコントロールが無効になったり
ネットワーク通信始めるようになったら、次にソース見たときに
それが本当に何をやっているのか中まで全部見ないと理解できないものになる
小さいプログラムのうちはなんとかなるが、大きくなるにつれて
たまねぎの皮を剥くような精神力の戦いに引きずり込まれることになる
0246デフォルトの名無しさん
2009/11/08(日) 22:28:51どういう意味で「副作用」と言っているのか不明瞭な気がするが、
それは抽象化と命名が適切かどうかという問題であって、
「それ」がプロパティかメソッドか、という問題ではないと思うが。
0247デフォルトの名無しさん
2009/11/08(日) 22:50:25されているし、俺もそう思う。
抽象化と命名の問題かもしれないが、区別して使うに越したことはない。
0248243
2009/11/08(日) 22:51:48一括ではない。
組み合わせをcase式で処理してる。
さらにいえば、それは親フォームにある共通のコントロール。
getsetで渡す値はenumな値で表示モードです。
子フォームからgetsetして共通コントロールの制御を親のプロパティで行い、子は自formのコントロールの制御をおこなう。
状態としてコントロールの管理をしたかったんた゛。
0249デフォルトの名無しさん
2009/11/08(日) 23:09:08それは別にいいんじゃないの?
0250デフォルトの名無しさん
2009/11/08(日) 23:10:25せっかく親フォームを抽象化しようとしているみたいなのにもったいない
0251デフォルトの名無しさん
2009/11/08(日) 23:38:54独自の日付方式で書かれた文字列をDateTimeに変換したい場合に
属性のみの記述で変換することは不可能でしょうか?
それとも大人しくラッパークラスを作るしかないんでしょうか?
・日付文字列(W3Cで定義された形式とは違う)
Sat Jan 24 22:14:29 +0000 2009
・メンバ
[System.Xml.Serializer.XmlElement("date")]
public DateTime Date {get; set;}
0252デフォルトの名無しさん
2009/11/09(月) 00:01:57言ってることが支離滅裂に聞こえる。
独自の日付方式で書かれた文字列って何?
>public DateTime Date {get; set;}
このプロパティの型はDateTimeであって文字列ではないと思うけど。
0253デフォルトの名無しさん
2009/11/09(月) 00:05:29カスは黙ってろ
0254ISO 8601
2009/11/09(月) 00:09:550255デフォルトの名無しさん
2009/11/09(月) 00:29:330256251
2009/11/09(月) 00:30:22XML上の「文字列」をDateTime型のプロパティにデシアライズしたい、というわけです。
その際、W3Cで定義された形式の日付文字列は特になにもしなくてもDateTime型に相互変換出来るんですが、
>>251 で挙げてるようなW3C標準じゃない形式の場合は変換してくれないんですよ。
で、属性にフォーマット指定したり変換用のデリゲートとかクラス指定したりして
シンプルに書く方法はないのかなぁと・・・
>>254
REST API実装してるアプリが返す日付形式って結構ばらばらな上適当ですよねぇ。
0257デフォルトの名無しさん
2009/11/09(月) 00:36:45DateTimeFormatInfo使えんかね
0258デフォルトの名無しさん
2009/11/09(月) 00:39:13そういうことなら、(当たり前のこと言うなと思うかもしれないけど)
>public DateTime Date {get; set;}
このプロパティにはXmlIgnore属性をつけておいて、このプロパティの値を
「独自の日付方式」の文字列で設定/取得するデシリアライズ用のダミーの
プロパティーを用意するだけじゃないの?
0259251
2009/11/09(月) 01:04:58シリアライザの方はカルチャ設定の書式ではなくW3Cの仕様にしたがって変換してるみたいです。
>>258
そうするとパブリックな日付のプロパティが2つ出来てしまうわけですよね。
あんまり無駄なパブリックメンバは作りたくないというのが正直なところです・・・
とりあえず、IXmlSerializable を実装した DateTime の子クラスを作って使うことにしてみます。
W3C規定の形式以外はこれが正解になるんだろか?
0260251
2009/11/09(月) 01:07:020261デフォルトの名無しさん
2009/11/09(月) 01:09:130262251
2009/11/09(月) 01:30:57DateTimeをラップして IXmlSerializable を実装するクラスを書くか
日付のプロパティ持ってるクラス自体で IXmlSerializable を実装して
他のプロパティでも属性使って楽するのを放棄するかの2パターンぐらいみたいですね。
うう、なんかすっきりしないなぁ。
0263デフォルトの名無しさん
2009/11/09(月) 09:07:39public class A {
public A(string id) {...}
public string Id {get; set;}
}
public class B {
public B(string id) {...}
public string Id {get; set;};
}
A.Id と B.Id がお互い代入出来なくするためにはそれぞれクラスや構造体(AidとかBidみたいな)を
作るしかないのでしょうか?
0264デフォルトの名無しさん
2009/11/09(月) 10:46:30イマイチ意図が読み取れないけど
GETだけのプロパティアクセスはだめなの?
0265デフォルトの名無しさん
2009/11/09(月) 12:37:34Cのtypedefみたいなことがしたかったんですが、C#のusingだと別名なだけで
相互に代入してもコンパイルエラーにはならないみたいですね。
やりたかったことは、以下でした
・A.IDとB.IDはお互いに採番体系が異るのでコード中で混ざらないようにしたい
(コンパイラにミスを見つけさせたい)
・ID自体にはメソッドもプロパティも不要なのでなるべくクラスは作りたくない
・プロパティはセッタもゲッタも必要
一番目か二番目を妥協するしかないのかしらん
0266デフォルトの名無しさん
2009/11/09(月) 12:50:140267デフォルトの名無しさん
2009/11/09(月) 12:50:380268デフォルトの名無しさん
2009/11/09(月) 12:59:220269デフォルトの名無しさん
2009/11/09(月) 13:15:18ロケーションの変更は
http://msdn.microsoft.com/ja-jp/library/cc825750.aspx
でわかったんですがキーロックの方法がわかりません
画面コピーしたモーダルウィンドウを全画面で出すとかですかね?
イベントをおおもとでキャッチしてしまえばいいんですが
作成しているのがコントロールオブジェクトなので親のイベントを
横取りするのも作法としてどうなのかと思いますし、方法もわかりません
ご意見をお願いします
0270デフォルトの名無しさん
2009/11/09(月) 13:41:33通常はAPIのSetWindowsHookExを呼んでキーボードフック(WH_KEYBOARD_LL)でやるんだけど
WMだとどうかな。一応、非公式でこのAPIそのものはあるみたいだが。
0271デフォルトの名無しさん
2009/11/09(月) 13:58:57たとえば、A.IDとB.IDを受けとってなにかするメソッドHogeがあったとして、
> public static void Hoge(string aId, string bId) {....}
コーディング中に第一引数と第二引数が逆になっちゃってもコンパイル時にはねて欲しいんですよ。
この場合はプロパティを直接渡すんじゃなくてクラスで渡せば問題ないですが。
0272デフォルトの名無しさん
2009/11/09(月) 14:16:400273デフォルトの名無しさん
2009/11/09(月) 14:21:42俺も疑問に思ったんで今試したが普通に通るな。警告すらでなかったぞ。
#cygwinのgccで警告最大でコンパイルした結果。彼は何か勘違いしてる気がする。
0274デフォルトの名無しさん
2009/11/09(月) 14:23:560275デフォルトの名無しさん
2009/11/09(月) 14:28:08IDクラスからAIDとBID継承させるとか
0276デフォルトの名無しさん
2009/11/09(月) 14:40:14VC++のclで警告レベル最大でコンパイルしても警告出ないね
0277デフォルトの名無しさん
2009/11/09(月) 14:44:43intという抽象度で表現出来る範囲を逸脱したオブジェクトなら専用のクラスにすべきだと思う
0278デフォルトの名無しさん
2009/11/09(月) 14:59:05思いっ切り間違ってるんだが
0279デフォルトの名無しさん
2009/11/09(月) 15:06:320280デフォルトの名無しさん
2009/11/09(月) 15:07:570281デフォルトの名無しさん
2009/11/09(月) 15:08:37ありがとうございます
一度キーワードがわかると情報がざくざくあつまってきますね
SetWindowsHookExを読んでフックする方法の弱点として
フックを登録できるのが1つだけのようです
なので他のアプリが使ってたら不具合が出たりするようです
サブクラス化というキーワードも出て来ましたが、これは
フックするというより盗み見するだけですか?
情報が集まったので方針を決めたいと思います
ありがとうございました
0282デフォルトの名無しさん
2009/11/09(月) 15:22:43グローバルフックもローカルフックもCallNextHookExってのを使ってチェーン状に管理しています
サブクラス化はイベントの起動に利用するだけでメッセージ潰したりはできません
0283デフォルトの名無しさん
2009/11/09(月) 16:18:57他のキー入力当てにしてるプロシージャに影響出ないわけないなw
0284デフォルトの名無しさん
2009/11/09(月) 16:41:18と自分で書いて関連付けた時に最初のクリックではメニューが表示されず
二回目以降にしか表示されるのですがこれを最初のクリックで表示する
方法はないでしょうか?。
また以下のように書いた場合にexitをクリックしてもタスクトレイのアイコンが
消えないのですが、これを消えるようにできないでしょうか?。
private NotifyIcon tasktry = new NotifyIcon();
cms_tasktry.Items.Add("Exit").Click += delegate(Object obj, EventArgs ea)
{
tasktry.Visible = false;
Close();
};
0285デフォルトの名無しさん
2009/11/09(月) 16:55:530286デフォルトの名無しさん
2009/11/09(月) 17:00:44環境は?
0287デフォルトの名無しさん
2009/11/09(月) 17:13:22private void Form1_Load(object sender, EventArgs e)
{
cms_tasktry.Opening += new System.ComponentModel.CancelEventHandler(cms_Opening);
}
private void cms_Opening(object sender, EventArgs e)
{
cms_tasktry.Items.Add("Exit").Click += delegate(Object obj, EventArgs ea)
{
tasktry.Visible = false;
Close();
};
}
>>285
だめでした
>>286
XP Ver2010 SP3
VC2010
です。
0288デフォルトの名無しさん
2009/11/09(月) 17:50:25Load時に一緒にやればいいじゃない。
アイコン消えない理由はそれとは違うようだが。
0289デフォルトの名無しさん
2009/11/09(月) 17:57:06ログイン処理した時にメニューを書き換えているからですがnameでTextを
書き換えたり非表示にしたりする手もありますね。
0290デフォルトの名無しさん
2009/11/09(月) 18:05:13その時に追加しても遅いみたい。
0291デフォルトの名無しさん
2009/11/09(月) 18:07:18!するとLoad時にゴミを1つつけておけばいいのかな
試してきます
0292デフォルトの名無しさん
2009/11/09(月) 18:07:300293デフォルトの名無しさん
2009/11/09(月) 19:50:07this.Storyboard1.Begin();
このコードは3秒待つまで2行目は実行されないですよね?
0294デフォルトの名無しさん
2009/11/09(月) 19:56:290295デフォルトの名無しさん
2009/11/09(月) 20:09:24あり得ますか?
0296デフォルトの名無しさん
2009/11/09(月) 20:15:24飛びます飛びますってかw
0297デフォルトの名無しさん
2009/11/09(月) 20:26:18Storyboard使ってるんだったら3秒後にアニメーションをスタートするアニメーションを作れるだろ
0298デフォルトの名無しさん
2009/11/09(月) 20:30:18記事の削除メソッドを実装するとしたら記事クラスと掲示板クラスの何方が適当でしょうか?
0299デフォルトの名無しさん
2009/11/09(月) 20:32:120300デフォルトの名無しさん
2009/11/09(月) 20:36:000301デフォルトの名無しさん
2009/11/09(月) 20:36:00GUIのスレッドではSleepは機能しないと覚えておけばいいんですか?
この3秒にSleepではなく処理を入れたいんですが、
まさかGUIスレッドの中では同時に処理できる行はガンガン並行処理して次の行、次の行が実行されていくんでしょうか?
めちゃくちゃなんですけど
0302デフォルトの名無しさん
2009/11/09(月) 20:41:430303デフォルトの名無しさん
2009/11/09(月) 20:42:09お前の頭がむちゃくちゃだよ
0304デフォルトの名無しさん
2009/11/09(月) 20:42:17this.Storyboard1.Begin();は絶対に3秒経過するまで実行されない。その間GUIはフリーズする。
基本的にSilverlightは(Silverlightのスレに書き込んでるだろ)GUIスレッドでのSleep禁止ということになってるから
何が起こっても文句は言えない。WPFやSilverlightのアニメーションは時間に依存するからややこしい。
0305デフォルトの名無しさん
2009/11/09(月) 20:47:00WMP9からWMP11にアップデートすると、
そのソフト自体の起動や処理が重くなったように感じます。
これは仕方無い事なんでしょうかね?
0306デフォルトの名無しさん
2009/11/09(月) 20:58:280307デフォルトの名無しさん
2009/11/09(月) 21:10:120308デフォルトの名無しさん
2009/11/09(月) 21:10:16それが無いと不便で不便で・・・
0309デフォルトの名無しさん
2009/11/09(月) 21:16:33silverlight限定の仕様だったんですね
FormGUIの基本なのかと思っちゃいました。
silverlightと書き込まなかったので一生解決できないところでした
ありがとうございます!
0310デフォルトの名無しさん
2009/11/09(月) 21:19:55いやDirectSoundって自分でバッファに波形データを直接書き込んでいくんだぞ
何でもできるが何もできない
>>309
Silverlightに限らずGUIで時間のかかる処理をしてはいけない。
一応WPFやWinFormsではそれによってGUIがフリーズするのを回避する方法が用意されてるけど
やらないに越したことはない。
Silverlightに限ってはそういう回避方法が無いので絶対ダメ。
0311デフォルトの名無しさん
2009/11/09(月) 21:19:550312デフォルトの名無しさん
2009/11/09(月) 21:27:16ありがとうございます。
DirectSoundで調べてみたいと思いますが、なんだか難しそうですね。。
0313デフォルトの名無しさん
2009/11/09(月) 21:43:18無茶苦茶
滅無
0314デフォルトの名無しさん
2009/11/10(火) 00:09:25サーバーの部分だけ作ってみてビルドして、実行するとフリーズしてしまうんですが、
原因が分かりません。教えていただけないでしょうか?初心者ですいません。
public void ServerStart()
{
System.Text.Encoding enc = System.Text.Encoding.UTF8;
int port = 9991;
TcpListener listener =new TcpListener(IPAddress.Parse("127.0.01"), port);
listener.Start();
TcpClient tcp = listener.AcceptTcpClient();
NetworkStream nss = tcp.GetStream();
MemoryStream mss = new MemoryStream();
byte[] resBytes = new byte[256];
int resSize;
do
{
resSize = nss.Read(resBytes, 0, resBytes.Length);
if (resSize == 0)
{
textBox2.Text = ("クライアントが切断しました");
//Console.ReadLine();
return;
}
mss.Write(resBytes, 0, resSize);
} while (nss.DataAvailable);
string resMsg = enc.GetString(mss.ToArray());
textBox2.Text = resMsg;
mss.Close();
}
0315デフォルトの名無しさん
2009/11/10(火) 00:27:45AcceptTcpClient は、データの送受信に使用できる TcpClient を返すブロッキング メソッドです。ブロックしないようにする場合は、Pending メソッドを使用して、接続要求が受信接続キュー内で使用可能かどうかを確認します。
ではないのか?
0316デフォルトの名無しさん
2009/11/10(火) 00:47:28解決できるかどうか分かりませんが、Pending メソッドについて調べてきます。
0317デフォルトの名無しさん
2009/11/10(火) 02:15:120318デフォルトの名無しさん
2009/11/10(火) 09:40:490319デフォルトの名無しさん
2009/11/10(火) 09:43:530321314
2009/11/10(火) 15:31:370322デフォルトの名無しさん
2009/11/10(火) 15:48:230323デフォルトの名無しさん
2009/11/10(火) 18:05:300324デフォルトの名無しさん
2009/11/10(火) 18:08:540325デフォルトの名無しさん
2009/11/10(火) 18:09:090326デフォルトの名無しさん
2009/11/10(火) 20:32:36何かいい方法ないですか?
自分でループしてる処理ならBackgroundWorker.CancellationPendingをチェックして終了すれば
いいけど、List<>.Sort の実行中は何もできないんで。
次の様な処理書いてます。
private void backgroundWorker1_DoWork( object sender, DoWorkEventArgs e ) {
BackgroundWorker worker = sender as BackgroundWorker;
List<string> list = new List<string>();
Random random = new Random();
for( int i = 0; i < 1000000; i++ ) {
if( worker.CancellationPending ) {
e.Cancel = true;
return;
}
list.Add( string.Format( "{0}";, random.Next( 1, 1000000 ) ) );
}
list.Sort( delegate( string s1, string s2 ) {
return int.Parse( s1 ).CompareTo( int.Parse( s2 ) );
} );
e.Result = list;
}
0327デフォルトの名無しさん
2009/11/10(火) 20:46:480328デフォルトの名無しさん
2009/11/10(火) 20:57:430329デフォルトの名無しさん
2009/11/10(火) 21:21:540330デフォルトの名無しさん
2009/11/10(火) 21:35:48yield
0331デフォルトの名無しさん
2009/11/10(火) 21:38:01>>326
yield を使って止められるようにすればいい。
貼ったソースはWorker操作のためのサンプルだと理解しているが、
もし本気コードならいちいちintに変換しながら比較するなんて馬鹿なことはやめたほうがいいぞ。
一括でソート済みsetに放り込んで再び取り出したほうがよほど速い。
0332デフォルトの名無しさん
2009/11/10(火) 21:42:18無理矢理止めるならlist.Sortに渡すコールバック内で例外投げるくらいしかないと思う
0333デフォルトの名無しさん
2009/11/10(火) 21:54:47型に応じて動作を行うというものを作っております
たとえば、WebBrowserならMessageBox.Show("WebBrowser","種類");
みたいな感じで
アクティブなコントロールをthis.ActiveControlで取得まではできるのですが
その取得したコントロールの型同士を比較するにはどうすればいいでしょうか
0334デフォルトの名無しさん
2009/11/10(火) 22:00:45あるオブジェクトの型名などを取得するにはGetType
0335デフォルトの名無しさん
2009/11/10(火) 22:03:50if(this.ActiveControl is WebBrowser)
で比較できましたありがとうございました
0336デフォルトの名無しさん
2009/11/10(火) 22:05:32ボタンをクリックしたことにするにはどうすればいいでしょーか
0337デフォルトの名無しさん
2009/11/10(火) 22:05:49さげわすれごめんなさい
0338デフォルトの名無しさん
2009/11/10(火) 22:18:560339デフォルトの名無しさん
2009/11/10(火) 22:23:240340デフォルトの名無しさん
2009/11/10(火) 22:24:530341デフォルトの名無しさん
2009/11/10(火) 23:45:23主にヘッダーのことですが
0342デフォルトの名無しさん
2009/11/10(火) 23:53:450343デフォルトの名無しさん
2009/11/11(水) 00:00:42すいません、WebBrowserコントロールの話ですorz
マイクロソフトのWebBrowserは便利ではあるのですがなかなか使いづらい・・・
使用制限の無い便利なブラウザコントロールないかなあ・・・・
0344デフォルトの名無しさん
2009/11/11(水) 01:17:340345デフォルトの名無しさん
2009/11/11(水) 01:19:430346デフォルトの名無しさん
2009/11/11(水) 01:21:35ここで答えもらえなかったから行ったんじゃないの?
ほんと関係ないな
0347デフォルトの名無しさん
2009/11/11(水) 23:45:59MSDNに例外情報は記載されていなかったのですが、System.IO.FileNotFoundExceptionが発生しました。
System.IO.IOExceptionを継承した例外やArgumentNullException等が起きると予想できますが、
他にも発生しますか?
0348デフォルトの名無しさん
2009/11/11(水) 23:58:59ArgumentExceptionやInvalidOperationの派生型が発生する場合は
使い方に問題があるということだから原則キャッチ禁止
0349デフォルトの名無しさん
2009/11/12(木) 00:05:31目的でアドバイスが変わる
現段階のという条件をつければ解析して
可能かもしれないという話は別にして
0350デフォルトの名無しさん
2009/11/12(木) 00:16:01解析してキャッチしたりするのはあんまり良くないな
XElement.Load(string)はファクトリーメソッドということになってるXmlReader.Createに依存してるので
実際何やるかわからないんだよね
不安なら他のオーバーロード使ったほうが確実
0351デフォルトの名無しさん
2009/11/12(木) 00:52:22ありがとうございます
例外のStackTraceを見ると、
場所 System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings)
場所 System.Xml.Linq.XElement.Load(String uri, LoadOptions options)
場所 System.Xml.Linq.XElement.Load(String uri)
となっていましたが、Createメソッドの説明に無い DirectoryNotFoundException が発生しました
XmlReader.Create を直接呼び出しても DirectoryNotFoundException が発生しました
説明にあるFileNotFoundException と DirectoryNotFoundException には直接の継承関係は無いはずなのに
該当箇所は、何らかのエラーが発生したら、メッセージボックスを表示して強制終了する積りです。
0352デフォルトの名無しさん
2009/11/12(木) 01:19:56Windows APIと.NETの二種類があるの?
Windows APIって.NETより難しいんでしょ?
0353デフォルトの名無しさん
2009/11/12(木) 01:28:430354デフォルトの名無しさん
2009/11/12(木) 02:08:30自分で考えたモデリングが正しい(あるいは悪くない)ことを客観的に測る指標などは存在するのでしょうか?
クラスを書くたびに間違ったことしてるんじゃないかと不安になります。
0355デフォルトの名無しさん
2009/11/12(木) 02:13:210356デフォルトの名無しさん
2009/11/12(木) 02:23:020357デフォルトの名無しさん
2009/11/12(木) 02:24:09それだと動けばいいじゃん、になっちゃいません?
動くけど設計上よろしくない(拡張性/保守性がないとか)ってのをどうやって自分で認識したらいいんでしょう?
0358デフォルトの名無しさん
2009/11/12(木) 02:28:060359デフォルトの名無しさん
2009/11/12(木) 02:31:000360デフォルトの名無しさん
2009/11/12(木) 02:37:41それが成長というものじゃないのかね
0361デフォルトの名無しさん
2009/11/12(木) 02:41:00http://labo.mamezou.com/special/sp_008/sp_008_001.html
0362デフォルトの名無しさん
2009/11/12(木) 02:42:220363デフォルトの名無しさん
2009/11/12(木) 02:44:30その"満足出来なかった"っていうのは何をどう評価して満足出来なかったんでしょうか?
そこらへんが肝な気がする。
0364デフォルトの名無しさん
2009/11/12(木) 02:45:40>それだと動けばいいじゃん、になっちゃいません?
ならないよ
間違ってるのに間違ったことに気付いていない場合や
判ってて直そうとしない場合はその限りではないが
自分で問題意識を持ち続けて常に改良を続けるのが
本来のオブジェクト指向的リファクタリングの発想
0365デフォルトの名無しさん
2009/11/12(木) 02:53:54完璧なソースだと?
0366デフォルトの名無しさん
2009/11/12(木) 03:08:51//_ [][]// ,,-―''':::::::::::::::ヽヾヽ':::::/、 誰 作 こ
// \\ // /::::::::::::::::::::::::::::::i l | l i:::::::ミ だ っ の
 ̄  ̄  ̄/ /:::::::::,,,-‐,/i/`''' ̄ ̄ ̄ `i::;| あ た ソ
―`―--^--、__ /:::::::::=ソ / ヽ、 / ,,|/ っ の |
/f ),fヽ,-、 ノ | 三 i <ニ`-, ノ /、-ニニ' 」') !! は ス
i'/ /^~i f-iノ |三 彡 t ̄ 。` ソ ハ_゙'、 ̄。,フ | ) を
,,, l'ノ j ノ::i⌒ヽ;;|  ̄ ̄ / _ヽ、 ̄ ゙i )
` '' - / ノ::| ヽミ `_,(_ i\_ `i ヽ、 ∧ ∧ ∧ ∧
/// |:::| ( ミ / __ニ'__`i | Y Y Y Y Y
,-" ,|:::ヽ ミ /-───―-`l | // |
| // l::::::::l\ ||||||||||||||||||||||/ | // |
/ ____.|:::::::| 、 `ー-―――┴ / __,,..-'|
/゙ー、,-―'''XXXX `''l::,/| ー- 、__ ̄_,,-"、_,-''XXXXX |
/XX/ XXXXXXXXXX| | _, /ノXXXXXXXXXX|
0367デフォルトの名無しさん
2009/11/12(木) 03:50:51後で使わないかもしれないからオーバースペックにする必要も無いか」だとか
「今の構成だとこうした方が早道だ」とか
「正規化よりもリアリティ」だとか
色々あって理想通りにはいかない事なんてあるある探検隊
学校のテスト勉強と違って正解なんて相対的なものだ
何かに気づいて知ることで考え方やアプローチが広がるから、
経験無い内に全てを網羅した答えなんて得られないと言わざるを得ない
‥って言ってもあきらめろって意味じゃないのはわかるよな
0368デフォルトの名無しさん
2009/11/12(木) 04:49:400369デフォルトの名無しさん
2009/11/12(木) 05:08:130370デフォルトの名無しさん
2009/11/12(木) 07:48:48タブコントロールを継承した、TabDXを作ったのですが
デザイナから直接これを使うことはできますか?
現状方法が分からず、一度普通のTabを配置して、TabDXにすべて置換するという作業を行っていますが
なんかとても頭悪いことをしているような気がしまして
0371デフォルトの名無しさん
2009/11/12(木) 07:53:070372デフォルトの名無しさん
2009/11/12(木) 08:01:17うああああああああああああああああああああああああああああああああああああ
今までコツコツ作ってきた200個近くのコントロールが全て表示されました
これで置換作業とはおさらばです!ありがとうございました!
0373デフォルトの名無しさん
2009/11/12(木) 08:03:03クラス内に
public abstract bool DesignTimeVisible()
{ return true; }
を追加
それだけでした
0374デフォルトの名無しさん
2009/11/12(木) 08:15:590375デフォルトの名無しさん
2009/11/12(木) 08:18:440376デフォルトの名無しさん
2009/11/12(木) 08:29:10これどうやったら間違いに気付くんだ?
>自分で問題意識を持ち続けて常に改良を続ける
その問題意識ってのが間違ってたらどうするんだ?
例えばドメインモデル貧血症なんかはどう考える?
全然問題無いじゃん!って言ってる人もいるけどそういう人達は間違ってるの?
それともそんな単語作りだした側が間違ってる?
0377デフォルトの名無しさん
2009/11/12(木) 08:34:46GoFのじゃなく設計のパターンの方
仕事で設計してるならいいけど個人で作ってる場合は
本だのネットだの勉強会だのに頼るしかないね
ダメ出ししてくれる場が無いからつらいのう
0378デフォルトの名無しさん
2009/11/12(木) 08:54:040379デフォルトの名無しさん
2009/11/12(木) 09:01:12個々が少々ダメでも他に影響しない限り問題ない
0380デフォルトの名無しさん
2009/11/12(木) 09:11:22外から見て問題のある動作するとかならともかく。
そんなことより楽しくて役に立つプログラムを素早く作れた方が評価されるよ。
0381デフォルトの名無しさん
2009/11/12(木) 09:24:21public class AAA: System.Windows.Forms : IHogeHoge
みたく
0382デフォルトの名無しさん
2009/11/12(木) 09:27:32public class AAA : System.Windows.Forms, IHogeHoge
もちょっと勉強しろよと
0383デフォルトの名無しさん
2009/11/12(木) 09:33:52サンクス
そういう風に実装する記述見当たらなかったんでちょっと聞いてみようとorz
頑張って勉強するよ
0384デフォルトの名無しさん
2009/11/12(木) 09:41:44間違いに気付かない人はある意味閉じた環境にいるニートみたいなもんで幸せな人なんだろう
そんなのがプロジェクトに参加したらアホ呼ばわりされるんだろう
PHPとかRubyとかにいっぱいいそうだ
0385デフォルトの名無しさん
2009/11/12(木) 09:51:59>間違いに気付かない人はある意味閉じた環境にいるニートみたいなもんで幸せな人なんだろう
これ本当にそうだよなぁ。
良い意味でも悪い意味でも。
気付かなくても問題が無い=それで良いってこともあるしね。
ポトペタで作ったソフトのお陰でチーム全員が残業から開放された!なんて状況下で
こんなださい設計のソフト作るやつはクズだね、とか言ってもしかたないし。
あと他人と仕事するならどっかの時点でアホ呼ばわりされて間違いに気付かないとだな。
そういう意味じゃオープンソースのプロジェクトに混ざるってのは悪くないのかもしれん。
0386デフォルトの名無しさん
2009/11/12(木) 10:06:42科学技術計算のプログラムなんか想像を絶する汚さ
0387デフォルトの名無しさん
2009/11/12(木) 13:41:050388デフォルトの名無しさん
2009/11/12(木) 13:55:160389デフォルトの名無しさん
2009/11/12(木) 14:01:130390デフォルトの名無しさん
2009/11/12(木) 14:23:09COMは開放やら何やら考えてるとすげぇめんどくさいし色々怖い
データファイルに落として
C#→EXCEL起動→強制的に内部の関数呼ぶとか、ボタン押したことにしてVBA実行→(゚д゚)ウマー
とか出来るんだろうか?
0391デフォルトの名無しさん
2009/11/12(木) 14:26:320392デフォルトの名無しさん
2009/11/12(木) 14:39:06そっか、作っておいたVBSキックすればいいだけか
それで検討してみよう
サンクス!!
0393デフォルトの名無しさん
2009/11/12(木) 18:00:11いいこと言うなあ。
csvで出力して、Process.StartでExcelを起動。これで十分だな。
0394デフォルトの名無しさん
2009/11/12(木) 19:48:39出来る
0395デフォルトの名無しさん
2009/11/12(木) 19:52:190396デフォルトの名無しさん
2009/11/12(木) 20:01:16どう考えてもC#の方が簡単だと思うんだが・・・
自動記録したマクロ(VBA)をアドインで保存しといて、それを使うってのなら
まだ話も分かるんだけど
0397デフォルトの名無しさん
2009/11/12(木) 20:09:50Clickイベントを画像の中だけで起こしたいんだけどどうやりゃいいの?
画像をクリックしたらなんか処理したいんだが
PictureBoxが四角形だから画像からちょっとはみでたところでもクリックイベントが発生しちゃってちょっと格好悪い。
0398デフォルトの名無しさん
2009/11/12(木) 20:20:42クリックされた位置が透過色だったらイベントを握りつぶすだけじゃないのか?
もしくは、最初に非透過部分のRegionを作っておくか。
人に聞かなきゃならん問題とも思えんが。
0399デフォルトの名無しさん
2009/11/12(木) 20:33:140400デフォルトの名無しさん
2009/11/12(木) 20:41:57x、y座標を、紙の端から数えるようにしようとしたら、印刷可能範囲を(0,0)と捉えているみたいです。
紙の左上端を起点にするにはどうすればよいでしょうか?
または、印刷可能範囲の左上端が、用紙の左上端からみてどの座標にあるかを取得する方法は ありますでしょうか?
よろしくお願いいたします。
0401デフォルトの名無しさん
2009/11/12(木) 20:55:510402デフォルトの名無しさん
2009/11/12(木) 20:56:02てか可能範囲の余白を知ってどうしたいんだ
セットされた紙次第なのに
0403デフォルトの名無しさん
2009/11/12(木) 20:57:190404デフォルトの名無しさん
2009/11/12(木) 20:58:130405デフォルトの名無しさん
2009/11/12(木) 21:03:54何いってんの。
例えば官製はがきの枠内に郵便番号が印刷できるのはどうしてだと思ってるんだよw
0406デフォルトの名無しさん
2009/11/12(木) 22:08:26片方の画像から片方の画像へ移す処理をしたいのですが
上手くいきません。
AllowDropがpictureboxには用意されていないようでどうしたらいいのかも
わからず…
何か良い方法ありませんか?
0407デフォルトの名無しさん
2009/11/12(木) 22:14:56移すってどういう事をしたいのか正確に
ファイルの移動?ビットマップデータのコピー?
ドラッグドロップじゃないと出来ない処理?2つのコントロールは同じアプリケーションの同一フォーム?
0408デフォルトの名無しさん
2009/11/12(木) 22:18:19自分でマウスイベント拾って好きなように実装するんだよ
0409デフォルトの名無しさん
2009/11/12(木) 22:53:29picturebox1.image=picturebox2.image
これでいけるよ
0410デフォルトの名無しさん
2009/11/13(金) 01:26:20それってプリンタ毎に変わるでしょ?
ハード的な要因でドライバが設定した原点(0,0)を
ソフト側で変更なんて出来るの?
0411デフォルトの名無しさん
2009/11/13(金) 01:32:040412デフォルトの名無しさん
2009/11/13(金) 01:56:12フォーム1ロードイベントにLabel1.Text="Hello";
ってC#そのまま書いたらコンパイル無効
thisも必ずつけなきゃいけないっぽい
C++ this->Label1->Text="Hello";
C# Label1.Text="aaa";
これだけみてもC#とC++はCという名前が共通についてるだけで
中身はかなり別言語なんだなぁ。
0413デフォルトの名無しさん
2009/11/13(金) 01:58:19アプリって言い直したら気が済むのでしょうか
0414デフォルトの名無しさん
2009/11/13(金) 02:55:21言ってることめちゃくちゃだが
独り言ならチラシの裏にしてくれ
0415デフォルトの名無しさん
2009/11/13(金) 03:02:030416デフォルトの名無しさん
2009/11/13(金) 03:24:22詳しくはMSDNのClickイベントとMouseClickイベントのとこに書いてある。
0417デフォルトの名無しさん
2009/11/13(金) 03:29:030418デフォルトの名無しさん
2009/11/13(金) 04:51:500419デフォルトの名無しさん
2009/11/13(金) 06:38:47死ね
0420デフォルトの名無しさん
2009/11/13(金) 09:11:29C#にも一応->演算子はあるけどこちらはポインタにしか使えない(それが本来の使い方)
0421デフォルトの名無しさん
2009/11/13(金) 11:56:33private int age;
プロパティのset部分に
if(value>100)
age=100
ってやって、これ以外にageを設定するメソッドなどがなければ
みたいにやれば、外部クラスからは絶対にageを100より大きく設定できることはないよね?
それとも特殊な状況で変わったりしちゃう?
0422デフォルトの名無しさん
2009/11/13(金) 12:04:02BinaryFormatter使ったらprivateなフィールドもシリアライズできるから違う値も入れられるかも知んない
試してないから見当違いの可能性大
0423デフォルトの名無しさん
2009/11/13(金) 13:04:12つまりList<T>[0]がList<T>[List.Count-1]になるようなクラスを作りたいんですが
とりあえず内部にList<T>をもっといて読み出すときだけ逆になるようにして対処しようとしてるんですが、
<T>の部分の実装の仕方が見当が付きません。
なにかヒントもらえませんか?
0424デフォルトの名無しさん
2009/11/13(金) 13:14:580425デフォルトの名無しさん
2009/11/13(金) 13:15:54フィボナッチの数列の第一項から第100項まで1秒以内のあっというまに計算できるとか便利すぎるな。
マジC#最強だな
0426デフォルトの名無しさん
2009/11/13(金) 13:34:50{
public T Value;
public MyClass(T v)
{
Value = v;
}
}
がぐぐったら出てきました^^;
0427デフォルトの名無しさん
2009/11/13(金) 15:57:06まったく同じに見えるんだが何か機能面で違うのか?
0428デフォルトの名無しさん
2009/11/13(金) 16:03:49http://msdn.microsoft.com/ja-jp/library/c6cyy67b%28VS.80%29.aspx
テンプレートは型パラメータの制約等をコンパイル時に解決するけど
ジェネリクスは実行時まで持ってる
0429デフォルトの名無しさん
2009/11/13(金) 16:12:03っつかテンプレートじゃないから。
0430デフォルトの名無しさん
2009/11/13(金) 16:44:020431デフォルトの名無しさん
2009/11/13(金) 18:37:570432デフォルトの名無しさん
2009/11/13(金) 19:35:11VS2010では他に移動しましたか?
0433デフォルトの名無しさん
2009/11/13(金) 19:36:420434デフォルトの名無しさん
2009/11/13(金) 19:39:25VS2005Stdを後からインストールしてもトラブル起きませんか?
0435デフォルトの名無しさん
2009/11/13(金) 19:42:090436デフォルトの名無しさん
2009/11/13(金) 19:42:440437デフォルトの名無しさん
2009/11/13(金) 19:49:09言われる通りでした。
usingをしたら参照もしてくれると思っていたのですがそういうわけではないのですね。
0438デフォルトの名無しさん
2009/11/13(金) 19:55:50動的にいくつか作成したpictureBoxをドラッグし、
元からあるpictureBoxに移動したいです。
この時、作成したpictureBoxの場所自体を移動させたいのですが
どこのpictureBoxからドラッグされてきたのかという情報の
取得方法がわかりません。
eでは、中のBitmapの情報のみを拾ってくるので…
0439デフォルトの名無しさん
2009/11/13(金) 19:56:14usingを理解してない予感
using はネームスペースを省略しますよーってこと
本来なら
System.Windows.Form.WebBrowser
とか書かなきゃいけないけど
いちいちかくのはめんどくさい
だから
using System.Windows.Form;
って宣言しとけば
勝手にそこ以前をつけてくれる
もし、同じ名前があると曖昧だからフルで指定しろって言われるよ
0440デフォルトの名無しさん
2009/11/13(金) 20:14:59たしかにusing だけじゃインテリセンスで補完もしてくれないか
0441デフォルトの名無しさん
2009/11/13(金) 20:16:45MouseDown のタイミングでどれを押下したかわかるだろ
ちょっと考えれば簡単。既存のドラッグ動作を良く観察して
0442デフォルトの名無しさん
2009/11/13(金) 21:06:50なんで?せっかく1192年からの鎌倉時代を舞台とした物語を作ろうとおもったのにカレンダー表示機能ないからできないじゃないか
FuckYou!!!
0443デフォルトの名無しさん
2009/11/13(金) 21:11:030444デフォルトの名無しさん
2009/11/13(金) 21:35:05テキストボックスで我慢するかカスタムコントロール作るかになっちゃう。
0445デフォルトの名無しさん
2009/11/13(金) 21:42:36一ヶ月が28日だったり
一年が13ヶ月だったりするんだぜ?
0446デフォルトの名無しさん
2009/11/13(金) 21:46:25月や年なんて日の属性だ
0447デフォルトの名無しさん
2009/11/13(金) 22:46:54こんな月もあるし
0448デフォルトの名無しさん
2009/11/13(金) 23:18:300449デフォルトの名無しさん
2009/11/13(金) 23:20:39げぇ…
0450デフォルトの名無しさん
2009/11/13(金) 23:27:15私にとっては別な言語に見えてしまいます。
たとえば、中国人や韓国人は同じアジアなので似てるといえば似てるのですが、
さすがに、東南アジアの人や、同じアジアと言われるオランダとかと比べると
まったく違うあろーって思います。ありがとうございました。
0451デフォルトの名無しさん
2009/11/13(金) 23:29:220452デフォルトの名無しさん
2009/11/13(金) 23:36:11先にC#やってたらVBは本当に全く同じなんだけどな
0453デフォルトの名無しさん
2009/11/13(金) 23:41:000454デフォルトの名無しさん
2009/11/13(金) 23:46:080455デフォルトの名無しさん
2009/11/13(金) 23:48:190456デフォルトの名無しさん
2009/11/13(金) 23:49:500457デフォルトの名無しさん
2009/11/13(金) 23:56:530458デフォルトの名無しさん
2009/11/14(土) 00:01:030459デフォルトの名無しさん
2009/11/14(土) 00:02:410460デフォルトの名無しさん
2009/11/14(土) 00:46:35どうやったらここまでインテリセンス速くなるのか
0461デフォルトの名無しさん
2009/11/14(土) 01:52:02日本では、明治5年(1872年)に、従来の太陽太陰暦を廃して翌年から太陽暦を採用することが布告された。
この「太陰暦ヲ廃シ太陽暦ヲ頒行ス」(明治5年太政官布告第337号、改暦ノ布告)では、
「來ル十二月三日ヲ以テ明治六年一月一日ト被定候事」として、グレゴリオ暦1873年1月1日に当たる
明治5年12月3日を明治6年1月1日とすることなどを定めた。そのため明治5年12月2日まで使用されていた
天保暦は旧暦となった(明治改暦、明治の改暦)。
0462デフォルトの名無しさん
2009/11/14(土) 01:59:370463デフォルトの名無しさん
2009/11/14(土) 10:13:46そのためのクラス設計がいまいちよくわかりません
プラグインを読み込むときピクチャーボックスのどの位置にアイコンを表示するか計算してプロパティに持たせる
OnPringイベントハンドラでそれぞれのプラグインが自分の位置にアイコンを表示する
プラグインにピクチャーボックスのクリックイベントハンドラを持たせる
クリックされたイベントがすべてのプラグインで評価され
自分のアイコン領域だったら機能を起動
こんな流れを考えてましたが
プラグインのアイコンを押したとき、さらに選択肢アイコンを表示したくなったらどうするのか?
その場合アイコンを管理するコンテナクラスを作るべきなのか?
そんなことをうだうだ悩んでます
どうかアドバイスをお願いします
0464デフォルトの名無しさん
2009/11/14(土) 10:26:49普通にカスタムコントロールじゃね。
>選択肢
タップ&ホールドさせてメニュー出すのがWMの流儀。
0465デフォルトの名無しさん
2009/11/14(土) 10:27:42描画方法はカスタムドローのノリでいいんじゃね
アイコンの管理はContextMenuのように親子を階層管理して、
クリックイベントは親で評価して該当する子に伝えて
子は自分の管理する孫にヒットテストしていく感じで
0466デフォルトの名無しさん
2009/11/14(土) 10:49:03ありがとうございます
プラグインは普通にプラグインです
DLLであとから供給される機能なので後からメニューに割り込ませないといけないです
タップ&ホールドさせてメニュー出す→一つ選ぶ→そこから更に選ぶ 例えば描画なら エフェクト→モザイク→小・中・大
みたいにモザイクプラグインが自分で持ってる選択肢がどのように展開するかを先に決めることができないので・・・
>>465
ありがとうございます
ノリ的にはカスタムドローなんですよね
管理のイメージもContextMenuのListを持たせる方式がなんとなくイメージしやすいです
イベントの処理をどうしようか悩んでたら
>クリックイベントは親で評価して該当する子に伝えて
>子は自分の管理する孫にヒットテストしていく感じで
あーなんか光明が見えてきた感じです
仮想関数のデリゲートのインスタンスで解決するですかね?
スマートな方法というか、常道ではどうするのでしょうか?
0467デフォルトの名無しさん
2009/11/14(土) 10:49:14C言語とかC++で作るページならいくらでもみつかるのに。
使いやすさ、簡単さはC#のほうがいいけど
やっぱサンプルコードが充実してるっていう点ではC++とかのがいいなぁ
0468デフォルトの名無しさん
2009/11/14(土) 11:02:41「参照」ボタンを教えても、自分の作ったネームスペースは出てこないんです。
0469465
2009/11/14(土) 11:07:33メニューが整列したデスクトップアイコンみたいなの想像してるんで
Zオーダーは考慮してないから注意してね
子から親ならデリゲート(イベント)かなと思ったけど
親から子ならインターフェース使うかなぁ
すべてのメニューに共通のインターフェース持たせとけば楽かと
void NotifyMouseClick(〜Args e) みたいな感じにするかな
継承まで考えるならこのメソッドの実装で virtual void OnMouseClick(〜) を呼ぶ
0470デフォルトの名無しさん
2009/11/14(土) 11:15:19>メニューが整列したデスクトップアイコンみたいなの想像してるんで
>Zオーダーは考慮してないから注意してね
OKですWMでアイコン並べるって話ですからiPhoneのアイコンと同じイメージです
>親から子ならインターフェース使うかなぁ
>すべてのメニューに共通のインターフェース持たせとけば楽かと
>void NotifyMouseClick(〜Args e) みたいな感じにするかな
>継承まで考えるならこのメソッドの実装で virtual void OnMouseClick(〜) を呼ぶ
なるほどなるほど
メッセージの流れを先に決めてしまえばイメージしやすいですね
親から子 子から親 要素からコンテナ みたいにいろんな方法がとめどなくあるので
身動き取れませんでした
なるべくいろいろなプラグインに対応できるようにここは慎重に考慮すべきですね
でも、頭の中がだいぶすっきりしてきました
ありがとうございます
0471デフォルトの名無しさん
2009/11/14(土) 11:50:06Dictionary<string,MyClass<T>>のようなことをしたいのですが、
ここでDictonaryが保持するMyClassはMyClass<int>やMyClass<string>
のように複数の場合、どうしたらいいですか?
最悪Refrection使っても問題ないので、よろしくお願いします。
0472デフォルトの名無しさん
2009/11/14(土) 11:58:25どの設定を変えれば良いですか?
例えば、
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "こんにちは";
}
で実行したあとに
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "こんばんわ" エラー;
}
を実行すると、エラー一覧画面で怒られているのに
最初に実行した"こんにちは" が表示されるという具合です。
C# 2008のお試し版を使っています。
0473デフォルトの名無しさん
2009/11/14(土) 12:10:08Dictionary<string, object> かねえ・・・
せめてMyClassに共通の具体的な継承元があればそれにしておくくらいか
>>472
そんな現象は起こらないので、何か勘違いしてる
0474471
2009/11/14(土) 12:17:56レスありがとうございます・。
objectにしちゃうと、受け側で int hoge = (int)myDictionary[keyString].GetValue()
みたく、キャストしないと受けれないですよね? それを避けたいというのが動機です。
継承元を作るもやってみたのですが、
外部からmyDictionary[keyString].GetValue()のような形で呼ぶためには、
共通の基底クラスにも
MyBaseClass
{
public abstract "Type" getValue();
}
が必要になり、何一つ解決しませんでした。
0475デフォルトの名無しさん
2009/11/14(土) 12:29:02そもそも、異なる型を一つのコレクションに突っ込もうとしてる時点でキャスト避けるのは無理に近い
他のデメリットをすべてかなぐり捨ててキャストだけ排除したいなら、
想定する全部の型をメンバーに持ったクラスにするしかない
バリアント型みたいに型を表すenumでも持っておいて、それを見て取り出すべきフィールドを決める
まあ、やんない方が良いね。そもそも設計の方に問題があると思うから
あと気になったんだが、GetValue()の結果をキャストするのっておかしくないか?
object item = myDictionary[keyString] as MyClass<int>;
int hoge = item.getValue();
こうあるべきだと思うけどね。
0476デフォルトの名無しさん
2009/11/14(土) 12:30:20objectで受けるんじゃなくて MyClass<int> だね
0477471
2009/11/14(土) 12:32:21objectにすると、
(MyClass<int>)myDictionary[keyString].GetValue()
とするのにキャストが必要。
objectのままだと当然GetValue()にはアクセスできない。
の間違いでした。
0478471
2009/11/14(土) 12:39:26>>475さん
やっぱりある種、動的型付け的なことなので無理なんですかね。
typeof(int) "12" や、 typeof(String) "もじ”
などの型情報とそこで指定された方にParse可能な文字列を保持しているペアがあって
その型情報をもとにParseして指定された型で返すというものを作りたかったので
扱いたい型の数だけフィールドorメソッドを用意する or objectで受けてキャストするのが解っぽいですね。
getIntValue() { return (int)value;} みたいなのを色々用意するくらいなら
受け側でキャストした方が楽か…
ありがとうございました。
0479デフォルトの名無しさん
2009/11/14(土) 12:51:53そういうことならMyClass内ではstringのまま持って以下のような方法も・・・
enum ElementType { None, Number, Text ..}
class MyClass
{
ElementType ElementType { get; }
T getValue<T>() { ... }
}
MyClass item = myDictionary[keyString];
switch (item.ElementType)
{
case ElementType.Number:
int hoge = item.getValue<int>();
break;
...
enumじゃなくてTypeを公開してもいいかもだけど
0480デフォルトの名無しさん
2009/11/14(土) 13:11:53public class MyClassDictionary<T>
{
public Dictionary<string,MyClass<T>> dic { get; private set; }
public MyClassDictionary()
{
this.dic = new Dictionary<string,MyClass<T>>();
}
}
0481デフォルトの名無しさん
2009/11/14(土) 13:27:34XNAを使うんだ!
0482デフォルトの名無しさん
2009/11/14(土) 14:06:54オブジェクト指向がない言語ってどうやってプログラム組んでるんだろうな。
if文とかすごく多くなって見づらそうだね。
0483480
2009/11/14(土) 14:10:380484デフォルトの名無しさん
2009/11/14(土) 14:17:53ずいぶん妙な事言ってるな
作るのは自分じゃないのか。他人ありきなのか
自分でアルゴリズムやロジック考える事こそがプログラミングだぜ
0485デフォルトの名無しさん
2009/11/14(土) 14:18:57どんな言語でもオブジェクト指向プログラミングは出来る
しやすいかどうか(文法としてサポートしてるかどうか)の違い
0486デフォルトの名無しさん
2009/11/14(土) 14:23:27そういや「オブジェクト指向」ていつのまにかただの単語になっちまってるな
オブジェクトとして捉え観察してコーディングする指向の呼称だったはずなのにな
0487デフォルトの名無しさん
2009/11/14(土) 14:31:20switchでの処理分けばっかりしてるようなやつもまだ沢山いるけどね。
0488デフォルトの名無しさん
2009/11/14(土) 14:32:14どんな複雑で難解な数学用語だろうが「ただの単語」だろ?理解できる人が多いか少ないかの違いがあるだけで。
0489デフォルトの名無しさん
2009/11/14(土) 14:32:24んなこたない
できるだけ横着するために苦労するのがプログラミングだと思うぞ
車輪の再発明して威張っていいのは学生まで
0490デフォルトの名無しさん
2009/11/14(土) 14:35:00バズワードになったっていいたいんじゃね?
http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%BA%E3%83%AF%E3%83%BC%E3%83%89
0491デフォルトの名無しさん
2009/11/14(土) 14:36:20俺のことか・・・
0492デフォルトの名無しさん
2009/11/14(土) 14:37:25面白い何かをいかに素早く作れるかが重要だよな。ここ最近は。
なに、レビューワーがしっかりしてりゃいいんですよ。
0493デフォルトの名無しさん
2009/11/14(土) 14:38:54元の意味を忘れてしまってるって話だ。前レスからの文脈を理解してくれ
0494デフォルトの名無しさん
2009/11/14(土) 14:39:25switch とオブジェクト志向、全然関係ないから気にするな
0495デフォルトの名無しさん
2009/11/14(土) 14:41:59ボケ
カス
0496デフォルトの名無しさん
2009/11/14(土) 14:45:27ここが「初心者向け」と看板がついたスレなのを忘れたか
いくつの車輪を再発明できるかがその人の理解の幅や知識、地力を上げると気付けよ
効率の話はまたその先の話だ
基礎的な発想や当たり前レベルだと、慣れた人がパッと見てわかるような事さえ初学では判断もできない訳だから
なんでもショートカットしてコピペで済ませてはいけない
お前さんも経験あるなら理解してもらえると期待する
0497デフォルトの名無しさん
2009/11/14(土) 14:46:04↓
マイクロソフトがVSをただで配ったりBorlandがDelphiをただで配ったりした
↓
一般大衆も高性能なプログラミング言語を手に入れられるようになった
↓
いままで一部の専門家しかプログラムなんてやらなかったのが普通の小中学生でも手を出すようになった
↓
オブジェクト指向などの概念などをわかりやすく解説するサイトが増えた
↓
浅い知識だけのオブジェクト指向が広まった
こういうことか
0498デフォルトの名無しさん
2009/11/14(土) 14:49:40だから「"学生"まで」なんじゃね?
>>484>>489>>492>>496
つか不毛な精神論語って悦に入ってるぐらいならさっさと参考になるサイトでも教えてやれよって思うんだがな。
0499デフォルトの名無しさん
2009/11/14(土) 14:50:59メソッドの引数なんかはよっぽどのことがないかぎり
普通にswitch使った方が適切
0500デフォルトの名無しさん
2009/11/14(土) 14:51:03コードの見通しが悪くなる弊害を無視して
常にそれなら、それはそれでアホだな
0501デフォルトの名無しさん
2009/11/14(土) 14:52:56パターン覚え立てだと凝ったことやりたがるのはよくあること
シングルトンの乱用なんかが典型的だな
0502デフォルトの名無しさん
2009/11/14(土) 14:55:58考え方やスタンスが無くてどんなコードが書けるんだ
攻略サイトが無いとパズルゲー解けないみたいな主張はゆとりと言うより、ちょっとひどい勘違い
0503デフォルトの名無しさん
2009/11/14(土) 14:58:24自分で考えろだの拾ってくるのが正しいだの、こんなの何の役に立つアドバイスなの?
発言してて気持ちいいだけっしょ?
0504デフォルトの名無しさん
2009/11/14(土) 14:59:22逆に初学の間は(どんなにコーディングに慣れた人でも新しい何かを始めた時も含めて、初学の間は)
色々無茶するのはむしろアリだよな
仕事に適用しなきゃならん場合は確実に除いて
0505デフォルトの名無しさん
2009/11/14(土) 15:01:00それにGoFで挙がってるのが唯一無二ってわけでもないし。
何でもかんでもアレに当てはめようっての自体がアンチパターン。
0506デフォルトの名無しさん
2009/11/14(土) 15:03:13俺はどんな話でもそこにヒントを探す。何故ならその方が自分の時間に無駄が無いから
てか、気持ちいいだけでしょ?とか、その発想の方が不毛で無駄
コーディングの役にあんまり立たない
0507新人
2009/11/14(土) 15:03:41エラー処理とかきっちりやったんで100行ぐらいになりましたよー!いやー苦労しました!
標準ライブラリのとかってなんか遅そうじゃないですか?
0508デフォルトの名無しさん
2009/11/14(土) 15:05:05private static Regex regexIP = new Regex(@"(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])");
0509デフォルトの名無しさん
2009/11/14(土) 15:06:07そりゃお前の話だろ
何故ならその方が自分の時間に無駄が無いから(キリッ
気持ちいいですか?
0510471
2009/11/14(土) 15:08:01>>479さん、追加例ありがとうございます。
MyClass自体は非ジェネリッククラスにして、
objectに外部で指定された型にParseしたvalueを入れておき、
myclass.getValue<int>();
みたいにとるのも可能性としてはありますね。
結局、
(int)myclass.getValue() と myclass.getValue<int>();
なら前者がシンプルでわかりやすいかなという気がします。
長々とお付き合いいただきありがとうございました。
0511デフォルトの名無しさん
2009/11/14(土) 15:08:27IPアドレス 正規表現でググってでてくるのが軒並それと一緒だから多分大丈夫じゃね?
0512デフォルトの名無しさん
2009/11/14(土) 15:09:08自分の技や発想のバリエーションがマジで広がる
何がアンチパターンなのかもきっとわかるよな
0513デフォルトの名無しさん
2009/11/14(土) 15:10:310514デフォルトの名無しさん
2009/11/14(土) 15:10:48どういたしまして。
つーか、おまえらこんなにいるくせに
黙ってスレ眺めてたのかよ、きめえww
0515デフォルトの名無しさん
2009/11/14(土) 15:13:18値の範囲自体は1-9とかの狭い範囲です。(マージャンゲームの実装をしています)
enumを使ったり値自体をクラスにすれば出来そうな気もしますが、そういうやり方が正しいのかどうか
よくわかりません。
0516デフォルトの名無しさん
2009/11/14(土) 15:13:22(25[0-5]|2[0-4]\d|[01]?\d\d|\d)
こうしないと数字の途中で切れるんじゃ
0517デフォルトの名無しさん
2009/11/14(土) 15:14:220518デフォルトの名無しさん
2009/11/14(土) 15:16:270519デフォルトの名無しさん
2009/11/14(土) 15:17:070520デフォルトの名無しさん
2009/11/14(土) 15:17:56ただ、それはアンチパターンだよ、ってのを教えてもらわないと
一生パラダイムシフトしないまま終る人も居る気がするよ。
仕事でやってりゃ怒られたりほされたりして気付くだろうけど
シコシコフリーソフトをソース公開しないで発表してたりする場合は
誰にも何にも言われんからなぁ。
0521デフォルトの名無しさん
2009/11/14(土) 15:18:43お前らかww
0522デフォルトの名無しさん
2009/11/14(土) 15:22:34指摘してもらえるのって大事だもんな
誰も一人では成長できないって奴だ
自分で広げるスタンスをデフォにした上で、他の人の意見を理解する、みたいな
やはり同意
0523デフォルトの名無しさん
2009/11/14(土) 15:25:28ContextMenuStripを使うとメッセージをブロックしてくれないから?ポップアップすると
ボタンがアップしてしまいます
これをContextMenuで実装するとボタンが凹んだ状態を維持出来るんですけど
機能がContextMenuStripに比べて少ないのでそれはそれで困ります
そこで、ContextMenuStripでShowしたときにメッセージをブロックする良い方法があれば教えてください
APIのTrackPopupMenuを試してみましたが表示されませんでした
なおボタンをトグル式にしたりして見た目上回避する方法はとれません
0524デフォルトの名無しさん
2009/11/14(土) 15:30:31なぜ?
単にそれだけで解決する「問題」に思えるんだけど。
ちなみに、個人的にはそんなメニューが表示されている間だけ「ボタンがフリーズする」
UIは生理的に気持ちが悪い気がする。
0525デフォルトの名無しさん
2009/11/14(土) 15:31:420526デフォルトの名無しさん
2009/11/14(土) 15:37:24エクスプローラの「アイコン/一覧/詳細」の切り替えボタンの動作といったら分かりますかね
凹んだ状態でもう一度押したらポップアップが解除されるだけですけど
メッセージがブロックされてないと、一瞬閉じてまた開きます
これ以外にも細々とした挙動で多くの不都合がありますので採用できません
>>525
別人です
0527デフォルトの名無しさん
2009/11/14(土) 15:41:20「秀丸エディタ」の正規表現の置換がうまくいきません。
作業内容は、
(1)Excelで作成した表を、タブ区切りのテキストデータとして保存し、
(2)「秀丸エディタ」でそのテキストデータを開き、
^(先頭文字)⇒¥t¥t¥t
に全置換しようとしました。
もともとテキストデータであったファイルを置換するときはうまくいきますが、
Excelからエクスポートしたテキストデータは、先頭行を認識してくれないのでしょうか。
どうすれば、先頭行を置換できるでしょうか。
スレちがいかもしれませんが…よろしくお願いします。
0528デフォルトの名無しさん
2009/11/14(土) 15:48:12死ねよ
0529デフォルトの名無しさん
2009/11/14(土) 15:48:19マルチポストです
0530デフォルトの名無しさん
2009/11/14(土) 15:50:11スレ違い帰れ
0531デフォルトの名無しさん
2009/11/14(土) 15:50:48public int バカ;
public string アホ;
public static void 無駄レス();
}
0532デフォルトの名無しさん
2009/11/14(土) 15:53:08な。連中がしてることってオナニーだよな。
0533デフォルトの名無しさん
2009/11/14(土) 15:53:37なるほどお節介をいって申し訳ない。
ちなみに、今ちょっと実験してみたらButtonのOnMouseUpをオーバライドして
ベースクラスのOnMouseUpを呼ばないようにすると「押されたまま」の状態になるようだ。
ボタンを通常の状態に戻したいときには、OnMouseUpが呼ばれた時のMouseEventArgsを
保存しておいてベースクラスのOnMouseUpを呼べばいいみたい。
これがWindowsプログラミング的に正しいかどうかは分からないけど。
0534デフォルトの名無しさん
2009/11/14(土) 16:03:22ありがとうございます
確かにその方法でボタンの押しっぱなしには対応できますね
ただボタンを左クリックして解除された時の動作や、
ポップアップしているメニューと関係のないコントロールの
キーボードショートカットなどが効いてしまいます
これらの多くの問題に対処するには、どうしても
ContextMenuのようなメッセージをブロックする形で
ポップアップしないとキリがない感じです・・・
なので、なんとか辻褄を合わせるような対処法は避けたいのです
0535デフォルトの名無しさん
2009/11/14(土) 16:04:44abstract class 牌 {}
abstract class 数牌 : 牌 {}
abstract class 萬子牌 : 数牌 {}
class 一萬 : 萬子牌 {}
...
abstract class 字牌 : 牌 {}
abstract class 三元牌 : 字牌 {}
class 中 : 三元牌 {}
...
ってやって全部クラスにしちゃうのと
abstract class 牌 {}
enum 数牌タイプ { 萬子,. 筒子,... };
class 数牌 { 数牌タイプ Type, int Number}
enum 字牌タイプ { 東, 南,.... };
class 字牌 { 字牌タイプ Type, }
みたいに途中でenumで振り分けちゃうのはどっちが実装として正しいんでしょうか?
0536デフォルトの名無しさん
2009/11/14(土) 16:24:12今まで使ってた言語の良い部分と悪い部分が浮き出てきて良いなぁ
0537デフォルトの名無しさん
2009/11/14(土) 16:32:50スレ違い
0538デフォルトの名無しさん
2009/11/14(土) 16:34:38decimalなんだからdでいいだろ!doubleと間違うならdeでいいだろ!
なんだよmって!
0539デフォルトの名無しさん
2009/11/14(土) 16:38:33プロのうんちくは読んだ本の受け流し
趣味グラマでも萎縮する必要はないよ
0540デフォルトの名無しさん
2009/11/14(土) 16:39:48moneyのmだろksg
0541デフォルトの名無しさん
2009/11/14(土) 16:40:26まず、牌の種類ごとにクラス分けする必要があるかどうか疑問だなぁ。
牌を使って何をするかにもよるが。
0542デフォルトの名無しさん
2009/11/14(土) 16:40:26具体例プリーズ
0543デフォルトの名無しさん
2009/11/14(土) 16:48:05回答が貰えた!ありがとうございます。
最初は牌クラス一つにしようと思ったんですが、
数牌は種類と数字が必要なのに字牌は種類だけ必要 => 字牌の場合数字が死にプロパティになる?ってのと、
ドラの牌を調べるのにこの牌の次の牌(九萬の次は一萬、南の次は西とか)はそれぞれの種類毎に
あったほうがいいかなぁと思って、それならどんどん派生させた方がいいのかなぁって思えてきまして・・・
実際に処理する場合は
牌インスタンス is 萬子 で判定するか、
牌インスタンス.Type == 数牌タイプ.萬子 で判定するかの違いぐらいかなぁって漠然と考えています。
0544デフォルトの名無しさん
2009/11/14(土) 16:58:300-1 東 0-2 南 0-3 西 0-4 北
1-1 白 1-2 葵 1-3 中
2-1 2-2 ... 2-9 萬
3-1 3-2 ... 3-9 筒
4-1 4-2 ... 4-3 索
0545デフォルトの名無しさん
2009/11/14(土) 17:07:41??インデックスを牌クラスに持たせるということでしょうか??
0546デフォルトの名無しさん
2009/11/14(土) 17:42:41全スレッドに対して一様に条件分岐を行うと処理が遅くなったので…
0547デフォルトの名無しさん
2009/11/14(土) 17:51:26逐次処理になってるんじゃね?
0548デフォルトの名無しさん
2009/11/14(土) 18:12:15はじめから完璧なものを作れた人なんていないしプロは過去の遺産を使いまわしているから
穴が少ない傾向にあるだけでしょ。どんな使われ方をしても大丈夫なプログラムなんて
そうそう作れるものではない。それは色々なOSが証明している。
と、初心者なおらは思う。
0549デフォルトの名無しさん
2009/11/14(土) 18:13:42ん?何に対する話だ?完璧なプログラムの話なんか誰かしてたっけ?
0550デフォルトの名無しさん
2009/11/14(土) 18:25:59printf("Hello World!!\n");
残りmain部分だけしか書いてないならどんな使い方をしてもバグは起こらないだろうな
0551デフォルトの名無しさん
2009/11/14(土) 18:41:020552デフォルトの名無しさん
2009/11/14(土) 18:49:50どこまでをプログラムとするかでそこらへん変るから。
0553デフォルトの名無しさん
2009/11/14(土) 19:11:470554デフォルトの名無しさん
2009/11/14(土) 19:44:58>>541 の言う通りなにをするかによるんだけど。
自分だったら牌クラスをひとつ用意した上で、enum で牌の種類を全部定義して、それをプロパティで
設定/参照できるように作る。テキストベースなプログラムを作るなら、牌をユーザに示すための文字を
設定/参照するプロパティを、GUI? なプログラムなら、牌のイメージを格納したビットマップかなにかの以下略。
‥‥と脱線気味な雰囲気に抵抗してみた。w
0555デフォルトの名無しさん
2009/11/14(土) 20:00:26役を判定するときにクラスに別れてたほうが判定しやすいかなーと思ったけど
よく考えてみると緑一色判定とかしたくなったら牌を特定するしかないわけだから
渡された牌があるグループに属してるか判定する静的メソッドでも作った方が
シンプルになりそうですね。
牌はenumで全定義、グループ判定は静的メソッドの方向でがんばってみようと思います。ありがとうございました。
0556デフォルトの名無しさん
2009/11/14(土) 20:09:05静的メソッドより、Is萬プロパティとかの方がC#っぽい
ような気がする。
0557デフォルトの名無しさん
2009/11/14(土) 20:48:39牌のインスタンスにIs萬とかIs数牌とか付けるってことですよね。
そこらへんどう解決するのがスマートなのかなんですよね、結局。
Is萬とかにする場合・・・
◯{get; private set;} なプロパティにしてコンストラクタ内で設定
--> コンストラクタでenum牌タイプを見てswitchして判断する? → コンストラクタがごつくなる・・・
◯コンストラクタに引数で渡す
--> Is萬がtrue, Is字牌がtrue、typeが一索なんてのをはじけない
って書いてて思ったけど、HashSet<牌タイプ> 萬子Set, 索子Set..... とか作って
それで判断すればそんなにごつくならないかな・・・
0558デフォルトの名無しさん
2009/11/14(土) 21:02:270559デフォルトの名無しさん
2009/11/14(土) 21:03:58書くと何がスマートじゃないか何となくわかるからそれで書き直せばOK
0560デフォルトの名無しさん
2009/11/14(土) 21:05:30c#
0561デフォルトの名無しさん
2009/11/14(土) 21:12:23どうしてでしょう?
VBは入門言語だと聞きますが、VC#も似たようなものでしょうか?
また、趣味で本格的なプログラムをするとなればどちらが有利ですか?
0562デフォルトの名無しさん
2009/11/14(土) 21:14:42趣味なら断然C#。VBを選ぶ積極的な理由はない。使ってる人はみんな仕方なく使ってるだけ。
0563デフォルトの名無しさん
2009/11/14(土) 21:18:44VC++はポトペタ(フォームに貼り付けてイベント直接書いて終わりの書き方)が今一な上、
C++の概念もMFCも難しかった。よってVBの方が楽っていわれてた。
その流れでVBの方が楽っていまだに言う人がいるんじゃないのかなぁ。
VBもVC#も.NETを使いこなすのが一番のポイントになってるから
文法が違うぐらいでやるこた一緒だよ。
んで文法の自由度はC#の方が強力。
0564デフォルトの名無しさん
2009/11/14(土) 21:25:40オープンソースプロジェクトもほとんどC#
C系言語に慣れてればjavaやC++の情報も理解しやすい
0565デフォルトの名無しさん
2009/11/14(土) 21:31:25math.PIとかmath.Eとかつかった計算をdoubleでやってみてToStringすると条件によってきっちりした整数が表示されることがあるんだが・・・
こっちとしては10.000000000001とか表示されるより10と表示されるほうが楽でいいんだけどさ。
0566デフォルトの名無しさん
2009/11/14(土) 21:31:410567デフォルトの名無しさん
2009/11/14(土) 21:38:39double型とint型は互換性がありませんとかコンパイラにおこられまくるからいやになるかもねw
0568デフォルトの名無しさん
2009/11/14(土) 21:40:11ToStringの段階で下の方切り捨ててるだけ
実際の演算とは無関係
0569デフォルトの名無しさん
2009/11/14(土) 21:52:22double x = 10, y = 10.0000000000001, z = 10.00000000000001;
Console.WriteLine("{0}, {1}, {2}", x.ToString(), y.ToString(), z.ToString());
Console.WriteLine(x == y);
Console.WriteLine(y == z);
0570デフォルトの名無しさん
2009/11/14(土) 22:03:54どういうふうにやるのが一般的なんでしょうか。
ぐぐるとifやswitchをつかった例がいくつか見つかりますが、数が多くなったり、
Shiftなどの装飾キーの有無も含めた判定をするとかなりごちゃごちゃしそうなのですが・・・
0571デフォルトの名無しさん
2009/11/14(土) 22:05:570572デフォルトの名無しさん
2009/11/14(土) 22:18:470573デフォルトの名無しさん
2009/11/14(土) 22:23:39ちょっとかいた、多分動く
protected override bool ProcessCmdKey(ref Message msg, System.Windows.Forms.Keys keyData)
{
//Debug.WriteLine("ProcessCmdKey Start:");
const int WM_KEYDOWN = 0x100;
const int WM_SYSKEYDOWN = 0x104;
if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN))
{
switch (keyData)
{
case Keys.F1:
return true;
case Keys.F2:
return true;
case Keys.F3:
return true;
case Keys.F4:
return true;
case Keys.F5:
return true;
case Keys.F6:
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
各キーとリターンの間に実行したい処理をいれればいい。他のキーの組み合わせはぐぐれ
0574デフォルトの名無しさん
2009/11/14(土) 22:42:14VC#の場合1プロジェクト1アセンブリという認識でだいたい合っていますでしょうか?
0575デフォルトの名無しさん
2009/11/14(土) 22:45:450576デフォルトの名無しさん
2009/11/14(土) 22:46:350577デフォルトの名無しさん
2009/11/14(土) 23:00:100578デフォルトの名無しさん
2009/11/14(土) 23:06:00http://msdn.microsoft.com/ja-jp/library/168k2ah5.aspx
0579デフォルトの名無しさん
2009/11/14(土) 23:08:42自分なら、そう言う判定は牌クラスにはやらさない。
麻雀はやらないから良くはわからないけど、手牌を管理するクラスの基底クラスか、
役を判定するクラスを作って、そこで判定させる。
麻雀を知らないから良くわかんないんだけど、牌のグループを判定する目的ってなに?
そんなのなくても判定できそうに思うんだけど。。。
0580デフォルトの名無しさん
2009/11/14(土) 23:11:230581デフォルトの名無しさん
2009/11/14(土) 23:20:02牌の情報は牌が知ってる方が妥当な設計かなーと思ってそういう設計にしてました。
実際そういった情報を使うのは役判定クラスだけになりそうなんですよね。
グループの判定がしたいと思った理由は、以下のような役で
ある牌がどのグループに属してるか判った方が実装が楽かなと思ったからでした。
・清一色(全部の牌が萬子、筒子、索子のうちの一種類)
・字一色(全部字牌)
・混一色(清一色に字牌の面子あり)
0582デフォルトの名無しさん
2009/11/14(土) 23:28:25C++だと終了前にCloseHandleをするように決められています
これはリソースの解放をいうことだと思うのですが
ガベッジコレクション?があるからC#では特に解放したりする必要はないのでしょうか?
0583デフォルトの名無しさん
2009/11/14(土) 23:32:34自分で解放しなきゃダメ。
GCに回収/開放されるのはC#の管轄内で生成されたオブジェクトだけ
具体的にはそのインスタンスの為に処理系が用意したメモリ領域だけ
0584デフォルトの名無しさん
2009/11/14(土) 23:33:18.NET でまじめに Handle を使うのなら SafeHandle を使う
必要もあるし、P/Invoke は素人にお勧めできない。
0585デフォルトの名無しさん
2009/11/14(土) 23:41:38なるほど。知識不足、すまん。
それなら、牌種類 enum の他にグループ enum を牌クラスのプロパティに持たせるかな。
やっぱり牌クラスにはその手の判定メソッドは持たせない。自分なら。
0586デフォルトの名無しさん
2009/11/14(土) 23:49:41{
if (p is TextBlock)
{
list.Add((TextBlock)p);
}else if (p is Panel)
{
var pa = (Panel)p;
foreach (UIElement c in ((Panel)p).Children)
{
GetTextBlocks(c);
}
}else if (p is ContentControl)
{
GetTextBlocks((ContentControl)p);
}
}
再帰的に TextBlock の一覧を取得するメソッドですが、
これを Linq とか ラムダ式とか使ってメソッドを定義せずに
短く書くことってできますか?
0587デフォルトの名無しさん
2009/11/14(土) 23:51:05なるほど、属するグループもenumにしちゃうってのは盲点でした。
[Flag]属性付けとけば数牌かつ萬子とか風牌かつ字牌なんてのも容易に表現出来そうですね!
0588デフォルトの名無しさん
2009/11/14(土) 23:55:27やっぱそうなんですか
うーん管理が必要だな
>>584
そっちは
作成時にウインドウスタイルをいじれなくて困ってます
作成、MoveWindow(Win32API)でサイズ変更
とやると管理は必要ないですが
プロセスが立ち上がるまでサイズがデォルトなので支障がありまして・・・
せめて、非表示でプロセスを立ち上げる方法があれば・・・・と思ったのですが検索しても見つからず
CreateProcessを使用するしかないかという結論に至りました
0589デフォルトの名無しさん
2009/11/14(土) 23:59:030590デフォルトの名無しさん
2009/11/15(日) 00:01:280591デフォルトの名無しさん
2009/11/15(日) 00:03:36>>598 じゃないというか >>584 だけど少しはまともに調べたら?
0592デフォルトの名無しさん
2009/11/15(日) 00:04:23なんでもかんでも[Flag]使って一つのプロパティに収めるのは如何なものか?
でもenumが継承出来ない以上無理ないのか。
0593588
2009/11/15(日) 00:07:03WaitForInputIdle()でIdleを待ち
MoveWindowでサイズを変更すると言った感じのことをしています
Idleをまつのだから、プロセスがデフォルトの設定で開かれるのはしかたないことではあるのですが
ちょっとそれだと支障がありまして
0594588
2009/11/15(日) 00:11:10みなさんからすれば調べ方が悪いのでしょうが自分でも半日以上調べてたのですが
どうしようもなくこういう結論に至ってました
そんなものがあったのですね
ありがとうございました
自分で考えて導き出した結論はたしかに初心者なので間違ってることも多いかと思います
でもなにも考えずに
あれやるのどうするの?これやるのどうするの?
って全部聞いた方がいいんですかね?
自分で必死に考えてだした結論をそうやってバカにされるのは正直不快ですね
0595デフォルトの名無しさん
2009/11/15(日) 00:14:000597588
2009/11/15(日) 00:16:220598デフォルトの名無しさん
2009/11/15(日) 00:16:300599デフォルトの名無しさん
2009/11/15(日) 00:17:54お前の2ch論を勝手に初心者におしつけんなよwwwwwwwwwwww
2ch利用すると煽られなきゃいけないとかお前の世界はどんだけゆがんでるんだよwwwwwwwwwwwww
0600デフォルトの名無しさん
2009/11/15(日) 00:18:592ch初心者までは歓迎してなんだが。
0601588
2009/11/15(日) 00:19:30>>597
さんはどなたでしょうか
不快なのは確かですが
自分がバカなのも確かですので仕方ないです
他の方が教えていただけたので自分は満足です
ありがとうございました。喧嘩はしないでください
0602588
2009/11/15(日) 00:20:402ch初心者wwwwwwwwwwwwwwwwwww
ぼくは2chのプロですwwwwwwwwwww
あおっちゃうし偉そうに初心者を見下すけど解決法も提示しませーんwwwwwwwwwwwww
ってかwwwwwwwwwwwwwwwww
どんだけゆがんでんだよwwwwwwwwwwwwwww
0603デフォルトの名無しさん
2009/11/15(日) 00:20:420604588
2009/11/15(日) 00:21:260605588
2009/11/15(日) 00:21:310606デフォルトの名無しさん
2009/11/15(日) 00:22:11わろたwwwwwwwwwwww
0607デフォルトの名無しさん
2009/11/15(日) 00:22:49煽るやつにしか煽り返さんよ。自覚ないのかよ?不快いう
お前が不快だ。
それはそれとしてやっていることの内容的に CreateProcess でも
不自然でもないかもな。Vista や 7 で問題があるから使われなく
なりつつある API だけど。
で、まじめに使う場合の話したが、具体的にはハンドル型を
SafeHandle から継承して作成してうんぬんってややこしいことを
しないといけないので大変って話だ。やりたいんなら説明は長く
なるから SafeHandle でぐぐってその辺の知識を入れてからやれ。
0608デフォルトの名無しさん
2009/11/15(日) 00:27:220609デフォルトの名無しさん
2009/11/15(日) 00:27:56メソッドは必要
無理やり最近のC#っぽく書くならこんな感じか
private IEnumerable<TextBlock> GetTextBlocks(UIElement p)
{
var textBlock = p as TextBlock;
if (textBlock != null)
yield return textBlock;
else
foreach (var textBlock in LogicalTreeHelper.GetChildren(p).SelectMany(c => GetTextBlocks(c)))
yield return textBlock;
}
0610デフォルトの名無しさん
2009/11/15(日) 00:31:380611デフォルトの名無しさん
2009/11/15(日) 00:33:59もういちどスタートラインに戻って考え直してみてはいかが?
0612デフォルトの名無しさん
2009/11/15(日) 00:49:16を使ってるんだけど
IEデフォルトのショートカットを無効にして自分で設定したショートカットを使うにはどうすればいいの?
0613デフォルトの名無しさん
2009/11/15(日) 01:18:17ありがとう。研究してみる
0614デフォルトの名無しさん
2009/11/15(日) 01:52:12まったくおまえらの役立たずぶりには困ったもんだ
0615デフォルトの名無しさん
2009/11/15(日) 02:17:39その後、非表示から表示にきり変える方法が分かりません
http://msdn.microsoft.com/ja-jp/library/system.diagnostics.processwindowstyle%28VS.80%29.aspx
に、
Hidden 非表示のウィンドウスタイル。ウィンドウは表示または非表示のいずれかにできます。システムは、ウィンドウが非表示であることを示す場合は、そのウィンドウを描画しません。
ウィンドウが非表示の場合、そのウィンドウは無効になります。非表示のウィンドウは、システムまたはその他のウィンドウからのメッセージを処理できますが、ユーザーからの入力を処理したり
、出力を表示することはできません。アプリケーションは、新しいウィンドウを非表示にして、そのウィンドウの外観をカスタマイズしてから、ウィンドウ スタイルを Normal にすることがよくあります。
と、描いてあるのですが非表示で作成したプロセスをどうやって表示状態に戻すかが分かりません
作成したプロセスのWindowStyleを再度変更するにはどうすればいいのでしょうか?
win32APIも試してみたのですが
ProcessStartInfo startInfo = new ProcessStartInfo(save.memosoft);
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process p = new Process();
p.StartInfo = startInfo;
p.Start();
p.WaitForInputIdle();
Win32API.MoveWindow(p.MainWindowHandle,200,200,480,640,1);
p.WaitForInputIdle();
Win32API.ShowWindow(p.MainWindowHandle,1);
こんな感じで表示を切り替えようと思ったのですが非表示のウィンドウが表示されてくれません
ShowWindowの2や3最大化・最小化なんかは、普通に動くので表示・非表示切り替えの部分だけ
Cと、C#では別のものなのでしょうか?
よろしくお願いします
0616デフォルトの名無しさん
2009/11/15(日) 02:25:23対象言語はC/C++になるとは思うが
0617デフォルトの名無しさん
2009/11/15(日) 02:29:220618デフォルトの名無しさん
2009/11/15(日) 08:52:57Console.WriteLine("{0}, {1}, {2}", x, y, z);
Console.WriteLine("{0:F18}, {1:F18}, {2:F18}", x, y, z);
Console.WriteLine("{0:E18}, {1:E18}, {2:E18}", x, y, z);
0619デフォルトの名無しさん
2009/11/15(日) 09:11:000620デフォルトの名無しさん
2009/11/15(日) 09:14:55自覚しているんだねw
0621デフォルトの名無しさん
2009/11/15(日) 09:39:25自覚しているんだねw
0622デフォルトの名無しさん
2009/11/15(日) 10:05:50自覚してるんだぜ
0623デフォルトの名無しさん
2009/11/15(日) 10:33:390624デフォルトの名無しさん
2009/11/15(日) 11:02:330625デフォルトの名無しさん
2009/11/15(日) 11:04:39やっぱContentControl渡すとスタックオーバーフローするな、これ。
何か窺い知れないオーバーロードあるかと試してみたんだが。
例示としては不適切だし、実コードなら見直しを薦める。
0626デフォルトの名無しさん
2009/11/15(日) 11:23:050627デフォルトの名無しさん
2009/11/15(日) 11:25:410628デフォルトの名無しさん
2009/11/15(日) 11:49:52無駄にプライドばっかり高くてスルー能力も足りず、話を脱線してでも一言いわずにはいられない。
勿論冷静な人も大勢いるだろうが、一部の幼児脳は単芝と^^を付けて顔真っ赤なのを隠しつつ
煽らずにはいられない。
‥あ、このレスはスレチで、かつ釣りなので絶対にスルーして下さいね。
言わば例外ですが、これは仕様想定外の例外なので catch はしないで下さい。
こんなレスがある事自体が誤りなのです。その他はスルーしないで下さいね。
0629デフォルトの名無しさん
2009/11/15(日) 11:54:55graphics gとか使ったりするのはフォームでもできるけど
やっぱり画像処理はPictureBoxつかってやったほうがいいですか?
0630デフォルトの名無しさん
2009/11/15(日) 11:55:46結構学歴あって立場のある人間でも変態がいるからなぁw
0631デフォルトの名無しさん
2009/11/15(日) 12:28:29なんでだろうな? CreateProcess() して、ShowWindow() なら表示されるんだよね?
表示・非表示以外はできる、ってことだから、ウィンドウハンドルはちゃんと取れてるんだろうし。
0632デフォルトの名無しさん
2009/11/15(日) 12:29:06ことがありません。そうやって知識とか整理されたり解決策を
導く兵達の世界なのです。でもこれを忘れて暗黒面に落ちる
のは自重しようね!
>>629
「画像処理」をもうちょっと詳しく。拡大縮小とかそんなの?
0633デフォルトの名無しさん
2009/11/15(日) 13:12:370634デフォルトの名無しさん
2009/11/15(日) 13:20:44wmp.PlayStateChange +=
new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(st);
public void st(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
MessageBox.Show("StateChanged");
}
こうして、停止/再生を繰り返してもメッセージが表示されません。
何か間違っていませんか?
0635デフォルトの名無しさん
2009/11/15(日) 13:36:13なんか最後の1行でフイタ
そのライブラリって有名なのか?
リファレンスにはその状況下でそれでハンドル出来ると書いてあるの?
最早知らないとわからない話の類だと思う
0636デフォルトの名無しさん
2009/11/15(日) 14:21:56新規プロジェクトで、>>634だけ張るとちゃんと機能してくれるんですが・・
0637デフォルトの名無しさん
2009/11/15(日) 14:51:27Player = new WMPLib.WindowsMediaPlayer();
Player.PlayStateChange +=
new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(Player_PlayStateChange);
で
private void Player_PlayStateChange(int NewState)
{
・・・・・
}
になってるな。
0638デフォルトの名無しさん
2009/11/15(日) 16:29:55try に入る部分で負荷がかかるから
try のネストはするなってのをむかーし Java か C++でのなんかで読んだ気がする。
C#はどうなのかはあんまり気にしたことなかったなぁ。
あと .NET だとこんなの見つけた
http://msdn.microsoft.com/ja-jp/library/ms973839.aspx
>.NET アプリケーションのパフォーマンス関連のヒントとトリック
>送出する例外の数を減らす
>例外の送出にはきわめて高いコストがかかることがあるので、.......
0639デフォルトの名無しさん
2009/11/15(日) 17:04:30//いろいろやる
s="efgh";
これって、いろいろやるを行っている間は"abcd"はガベジコレクタンの対象にならずに
s="efgh"が実行された瞬間"abcd"がガベジコレクタンにぶっこわされるの?
0640デフォルトの名無しさん
2009/11/15(日) 17:23:56まぁ例外のパフォーマンスを気にしないといけないほど、大量の例外を投げる作り方ってどうなのさ?
0641デフォルトの名無しさん
2009/11/15(日) 18:03:29あるとしたらフロー制御に例外を使うとかじゃない?
それが推奨されないやり方だからMSも注意を促してるってことかと。
>>639
瞬間に"対象になる"ってのが正しいんじゃね?すぐにぶっこわされるわけじゃないよ。
あと当然ながら何かに参照されてるインスタンスはガベコレ対象外だよ。
あれこれしてる最中にぶっこわされるとかあったら怖すぎるww
0642デフォルトの名無しさん
2009/11/15(日) 18:05:53リテラルだからガベコレも何もない
>>640
正常系で例外を利用するようなとんでもない実装も、
異常系が頻発するような滅茶苦茶な設計も普通に駄目だろ
0643デフォルトの名無しさん
2009/11/15(日) 18:07:03ループの中でcatchしまくり&別にそれでループ脱出はしない、とか。
直接そういう書き方しなかったとしても、ループ内で呼び出してるメソッドの中の方でcatchしてたりすると
なかなか見つけづらいんじゃないかな。
0644デフォルトの名無しさん
2009/11/15(日) 18:42:500645デフォルトの名無しさん
2009/11/15(日) 18:45:43Parse使うのは駄目なの?
0646デフォルトの名無しさん
2009/11/15(日) 18:52:51try catch の流れで聞いてる?
なら TryParse を使いましょう。
0647デフォルトの名無しさん
2009/11/15(日) 19:10:06どういうことですか?
0648デフォルトの名無しさん
2009/11/15(日) 19:16:37リテラルかどうかなんて一切関係のない話だと思うけど。
0649デフォルトの名無しさん
2009/11/15(日) 19:18:44宣言が違うってことじゃね?
0650デフォルトの名無しさん
2009/11/15(日) 19:19:55正規表現使うのがオーソドックスなんじゃないの?
まあ扱う数字が非整数かつ国際化対応を考えるとちょっと面倒だったりするんだけど。
0651デフォルトの名無しさん
2009/11/15(日) 19:21:140652634
2009/11/15(日) 19:30:38>>637
wmpはprivate AxWMPLib.AxWindowsMediaPlayer wmp;
こう宣言していました。
AxWMPを使って同じ事出来ませんか?
0653デフォルトの名無しさん
2009/11/15(日) 19:32:01正規表現使う程のもんじゃないと思うが。
IsDigitでシコシコチェックするメソッド作るのも別にありだと思う。
0654デフォルトの名無しさん
2009/11/15(日) 19:52:04リテラル文字列の参照はなくならないから、ガベコレの対象にはなり得ない
0655デフォルトの名無しさん
2009/11/15(日) 19:55:18何をやって何がどうできないのか、全然わからんよ。
環境やら手順やら、落ち着いて書いてみ。
0656デフォルトの名無しさん
2009/11/15(日) 20:02:58Windows フォームアプリケーションでツールボックスに Windows Media Player を追加して、
それをフォームに貼り付けて、プロパティウィンドウから PlayStateChange イベントが追加できるよ。
そんで、↓みたいな感じでイベントも取れてる。
private void axWindowsMediaPlayer1_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
System.Diagnostics.Debug.WriteLine(e.newState);
}
0657634
2009/11/15(日) 20:07:58AxWMPコンポーネントをデザイナで配置し、
AxWMPLibのPlayStateChangeEventHandlerを使い、曲が終了すれば、
次の配列にある曲を再生、というプログラムを作ってました。
先日、機能拡張を図ろうと、幾つかの機能(次曲移動等の簡単なもの)を制作した後、
プログラムを起動してみると、曲の終了が検知できていなく、これに気がつきました。
それまではちゃんとイベントも捉えられていたのですが、どこを編集したのかも分からなってしまい・・・
0658デフォルトの名無しさん
2009/11/15(日) 20:09:490659634
2009/11/15(日) 20:15:33実際に試して貰ってありがとうございます。こちらの環境でも、新しくプロジェクトを作成すると、
void Form1_Load{axWMP.PlayStateChange += new AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler(ax);}
void ax(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
これでちゃんとイベントは取れています。
>>657のソースでも同じように記載してありますが、何度そこを書き直しても駄目でした。
今気がついたのですが、>>657のプログラムだと、新しくWMPのコンポーネントを生成しようとするとエラーが出て生成できませんでした;
コンポーネント 'AxHost' を生成できませんでした。エラー メッセージ:
'System.Reflection.ReflectionTypeLoadException: 要求された型のうち 1 つまたは複数を読み込めませんでした。詳細については、LoaderExceptions プロパティを取得してください。
場所 System.Windows.Forms.Design.DocumentDesigner.AxToolboxItem.CreateComponentsCore(IDesignerHost host)
場所 System.Drawing.Design.ToolboxItem.CreateComponentsCore(IDesignerHost host, IDictionary defaultValues)
場所 System.Drawing.Design.ToolboxItem.CreateComponents(IDesignerHost host, IDictionary defaultValues)
場所 System.Windows.Forms.Design.OleDragDropHandler.CreateTool(ToolboxItem tool, Control parent, Int32 x, Int32 y, Int32 width, Int32 height, Boolean hasLocation, Boolean hasSize, ToolboxSnapDragDropEventArgs e)'
>>658
かなり膨大なプログラムになってしまいましたので、書き直すのは本当に最終手段にしたく思いまして;
0660デフォルトの名無しさん
2009/11/15(日) 20:19:36ソース管理を使ってれば、機能拡張以前にロールバックするところだけど・・・。
変に直すより、最初っから作り直した方が早いかもよ。
0661デフォルトの名無しさん
2009/11/15(日) 20:28:38ですか。。
取りあえず参照周り弄ってみて、
駄目そうなら書き直すことにします。。
ソース管理?なるものがあるんですね。調べてみます。
0662デフォルトの名無しさん
2009/11/15(日) 20:36:02追加できるだろ?
実際に配置したコントロールと別のものを使っちゃってるんじゃないの?
0663デフォルトの名無しさん
2009/11/15(日) 20:37:480664デフォルトの名無しさん
2009/11/15(日) 20:42:02それも考えましたが、そこから書いても同じでした。
現時点でwmpコンポーネントは1つしか使ってないので、
間違うというのも無いはずなので・・・
0665デフォルトの名無しさん
2009/11/15(日) 20:51:41知らない内に廃棄してる、あるいは廃棄と同等な処理を呼んでしまってる
あるいはそこら辺の動きが理解できていなくておざなりになってる
とか
0666デフォルトの名無しさん
2009/11/15(日) 20:56:10曲再生の度にDisposeやHandleの解放もせずに新たにnewしてたりして、そっちにハンドラAddしてないとか
こういう謎な時は「それはありえない」って部分含めて丸ごと疑ってみるしかない
0667デフォルトの名無しさん
2009/11/15(日) 21:04:32それはないと思います。
StateChangeのイベントハンドラでプロジェクト全体に検索かけましたが、
問題有りそうな箇所は見つけられませんでした。
dispose、new周りも確認しました。
曲再生はただURIをwmpに与えているだけなので、問題は無いと思います。
これでも数日間ソースとにらめっこしてたので、
もう新しくソース書くことにしました。。
0668デフォルトの名無しさん
2009/11/15(日) 21:09:08クリックイベントを拾う方法を教えてください
0669デフォルトの名無しさん
2009/11/15(日) 21:09:51できますん
0670デフォルトの名無しさん
2009/11/15(日) 21:32:07日本語になってねぇぇぇ。
リッチテキストボックスの内容を書式込みで印刷するのは出来る。
http://support.microsoft.com/kb/812425/ja
「1つのRectangle構造体の中に」がイミフ。
0671デフォルトの名無しさん
2009/11/15(日) 22:53:02ど、どっちなんでしょうか?
可能であれば方法を教えていただけないでしょうか?
0672デフォルトの名無しさん
2009/11/15(日) 22:57:33>> 1-671
} catch {
//確かに重い
}
0673デフォルトの名無しさん
2009/11/15(日) 23:15:08何でスペース入れてんの?w
0674デフォルトの名無しさん
2009/11/15(日) 23:17:41ありがとうございます!
会社の各店舗がお客さんに配布する広告を作成しようとしています。
大半は、DB登録済みの商品内容を表形式で印刷するだけなのですが、
用紙の左下部分に、店舗ごとのフリー記載欄を設けたいんです。
例えば
「横浜西口店ではこんなキャンペーンを行っています!」←MSゴシック太字
であったり、
「三宮店ではこの商品がお得!!!!」←MS明朝の赤字
など、店舗ごとのオリジナルコメント登録フォームを設け、
リッチテキストボックスにコメントの内容と書式を設定してもらっておき、
その書式内容をそのまま、帳票の左下部分に反映させたいんです。
PrintDocumentコントロールなどの中で、
そのようなことを実現するにはどうすればよいでしょうか。
0675デフォルトの名無しさん
2009/11/15(日) 23:58:02printメソッド見ると分かるけど、GraphicsのHDCの中に印刷領域決めてその中に
リッチテキストをEM_FORMATRANGE送ってレンダリングしている。
そこいら辺をゴチャゴチャと直して使えばなんとかなると思われる。
また印刷領域がGraphicsで来ることから分かるけど、普通にg.DrawXXXXとかで
他の部分も描ける。ヘッダとかフッタとか。
0676デフォルトの名無しさん
2009/11/16(月) 00:00:450677デフォルトの名無しさん
2009/11/16(月) 00:42:08ヘッダとかフッタ…
印刷可能領域外に描けるということ?
ちなみに、印刷可能領域が用紙の端から何インチか知りたいのだけど、方法が分からない
(>_<)。
0678デフォルトの名無しさん
2009/11/16(月) 03:58:09出力する実行ファイルの名前を変えるにはどうすればいいですか?
0679デフォルトの名無しさん
2009/11/16(月) 04:05:47出力する実行ファイルの名前を変えておけばいいよ
0680デフォルトの名無しさん
2009/11/16(月) 04:27:550681デフォルトの名無しさん
2009/11/16(月) 04:52:27初心者相手に意味不明な専門用語をならべるベテランもレスしなくていいよ
0682デフォルトの名無しさん
2009/11/16(月) 04:54:410683デフォルトの名無しさん
2009/11/16(月) 05:06:44T func<T>(T x,T y)
{
return x+y;
}
intでもdoubleでも使える関数作るとおもったらできねー!ゴミ!考えたやつ死ね!
0684デフォルトの名無しさん
2009/11/16(月) 05:11:12.NET 4.0からだけどね。
0685デフォルトの名無しさん
2009/11/16(月) 05:26:19すんげー微妙だけど一応逃げ道はあるww
T func<T>(T x, T y)
{
return (T)Microsoft.VisualBasic.CompilerServices.Operators.AddObject(x, y);
}
まあ、このコードもゴミだなw
0686デフォルトの名無しさん
2009/11/16(月) 06:40:390687デフォルトの名無しさん
2009/11/16(月) 07:27:23自分で定義したらいい。
0688デフォルトの名無しさん
2009/11/16(月) 07:53:04つ [ビルド後のイベント コマンド ライン]
0689デフォルトの名無しさん
2009/11/16(月) 10:26:58現時点でバックアップを取りたいです。
出来れば毎日バックアップが残ればいいのですが、
プロジェクトのフォルダごとコピーしておく以外に良い方法はありますか。
0690デフォルトの名無しさん
2009/11/16(月) 10:53:23バージョン管理ツールを使う
VisualStudioがStd以上ならフリーのアドインが使えるsvnがいいかも。
まあEEでもツールや文献の多いSubversion(svn)から使い始めるのがいいかな。
0691デフォルトの名無しさん
2009/11/16(月) 10:58:590692デフォルトの名無しさん
2009/11/16(月) 11:01:13VisualSVN+AnkhSVNオヌヌメ
0693デフォルトの名無しさん
2009/11/16(月) 11:22:44ありがとうございます
解決しました
0694デフォルトの名無しさん
2009/11/16(月) 11:29:00たとえ中で足し算が出来ない仕様だとしても仕方無いような
渡される型にオペレータオーバライドでもできて「自型+自型と書かれた場合はどうする」が
定義出来るならテンプレ中で + が使えないとおかしいとは思う
0695デフォルトの名無しさん
2009/11/16(月) 12:34:56git流行ってるけどあれは個人で使ってもあんまり旨みがなさそうな気が・・・
0696デフォルトの名無しさん
2009/11/16(月) 12:38:580697デフォルトの名無しさん
2009/11/16(月) 12:44:36それって演算子のオーバーロードじゃ
0698デフォルトの名無しさん
2009/11/16(月) 12:58:120699デフォルトの名無しさん
2009/11/16(月) 12:59:57通常アクセスしない特定のセクタに特定のデータ書き込んでおく
0700デフォルトの名無しさん
2009/11/16(月) 13:04:06結局C/C++などでI/O処理書いてDLLにする形になると思う。
0701デフォルトの名無しさん
2009/11/16(月) 13:19:07いや、インターフェースがあったら
T max<T>(T a, T b) where T : IAddable, ISubable, .....
みたいなことできるよねーみたいな。
もちろん IComparable と同様に Int32 とか Double が実装してること前提だろうけど。
0702デフォルトの名無しさん
2009/11/16(月) 13:24:05あるファイルに、下記のような列挙型が定義されています。コメントの通り、近い将来何かの値が追加される予定の列挙型です。
このような列挙型を別のファイル・別の場所で使用する場合、予定された仕様変更に備えて、Exceptionを吐いたり、何かしら忘れないような処理を入れたいと思うのですが、どのような処理がよろしいでしょうか?
一応、思いついたのは下記のようにif/elseで分けた場合には、throw new XXXXExceptionすることでしたが、これでは列挙型が変更された後、実際にプログラムを動かさない限り、追加されたことに気づけません。
できれば、コンパイル時に忘れを防ぐような方法があればいいと思っているのですが……
よろしく御回答お願いいたします。
//あるファイル。
enum Hoge
{
abc, def, ghi
//近い将来、 jkl(?)が追加される予定。
}
----
//別のファイル
Hoge hoge = Hoge.abc;
if (hoge == Hoge.abc) {
//何かの処理
} else if (hoge == Hoge.def) {
//何かの処理
} else if (hoge == Hoge.ghi) {
//何かの処理
} else {
//仕様変更により、Hogeに値が追加された場合、変更を忘れないようにするための備忘録?
throw new NotImplementedException();
}
0703デフォルトの名無しさん
2009/11/16(月) 13:28:24ナイスな情報サンクス!
なるほど・・・
C++とかでローレベルI/O書いて.NETから呼び出せばいいのか
でその書込みアドレスは普段使わない(これまた調査が必要そうだけど・・・)位置に書き込んでおけばいいだけなのか・・・
なんとなく方向性はつかめた気がする!
やれるだけやってみよう!!
0704デフォルトの名無しさん
2009/11/16(月) 13:37:08汎用IOドライバ使えば読み書きできるとおもわれ。
ただし、バルク転送に限られるけど(確か)
0705デフォルトの名無しさん
2009/11/16(月) 14:32:59VS2008買ってC#を勉強しようとしていますが、
エディタの設定がデフォルトでタブが空白になるような設定になっています。
タブを空白にするメリットって自分には思いつかないのですが、どうなんでしょうか。
タブをスペースにするメリットってなんですか?
またそういう人は結構多いんでしょうか?
0706デフォルトの名無しさん
2009/11/16(月) 14:38:29コマンドラインでダンプする時も調整利かないから見づらい
半角空白はUnix系の人に多い気がする
0707デフォルトの名無しさん
2009/11/16(月) 14:44:44単にソースの見栄え整えるのに処理系で変わる機能文字使いたくない/使わない
って言う文化もある。
タブ文字に別の意味割り当ててる処理系もあったはず
0708デフォルトの名無しさん
2009/11/16(月) 14:46:42なるほど、納得です。ありがとうございます。
0709デフォルトの名無しさん
2009/11/16(月) 14:52:45なにこれwwwインテリセンスの強さとかマジヤバくてVC#2008Expとかウンコに見えるんですがwww
機能制限とか使用期限とかあんの?
0710デフォルトの名無しさん
2009/11/16(月) 14:57:020711デフォルトの名無しさん
2009/11/16(月) 15:28:19これを広告したかっただけでしょう
0712デフォルトの名無しさん
2009/11/16(月) 15:43:080713デフォルトの名無しさん
2009/11/16(月) 16:39:58された時にどちらのListboxから呼び出されたのか調べる方法はありますか?。
0714713
2009/11/16(月) 16:44:07ちょっと行ってきます
0715デフォルトの名無しさん
2009/11/16(月) 18:35:17バージョン情報の右上に残り日数が出てるだろう。
0716デフォルトの名無しさん
2009/11/16(月) 18:44:22厨房仕様だな・・・・・
0717デフォルトの名無しさん
2009/11/16(月) 20:06:26おー、いいねえ
コードに詰まった時の気分転換になるな
0718デフォルトの名無しさん
2009/11/16(月) 20:13:13USBデバイスはVendor ID(メーカー固有)、Produce ID(製品種固有)、
シリアルナンバー(個体固有)の3つの識別子を持っているから、
これらを使えばどんなUSBデバイスでもドングルとして使えそう。
(正確には、シリアルナンバーを持ってないUSBデバイスもあるんだけど、
USBメモリのように一人のユーザーが複数個使用する可能性があるデバイスでは
まず間違いなくシリアルナンバーを持っているはず。)
これらのIDの取得方法は、ここが参考になりそう。
ぱっと見た感じマネージドコードだけで意外と簡単に出来そう。
http://supermab.com/mikan.html
0719デフォルトの名無しさん
2009/11/16(月) 20:14:100720デフォルトの名無しさん
2009/11/16(月) 20:21:410721デフォルトの名無しさん
2009/11/16(月) 20:21:53入力予定のcsvデータは、次のような内容となっています。
さくら組,Red
こすもす組,White
このデータを読み込んで、帳票に、1項目目の組名を印刷したいと思います。そして2項目に組名の文字の色があるので、
その文字列をそのまま引用して文字列の色を指定したいと思います。
string a;
a = ゙Red゙(入力したcsvデータの内容);
としたとき、aの値を直接代入して色を指定することは可能ですか?
よろしくお願いいたします。
0722デフォルトの名無しさん
2009/11/16(月) 20:33:49Color 構造体を引数に取るメソッドに文字列を直接与える事はできないので、
なんとかしてその文字列を基に Color 構造体の値を得る必要がある。
KnownColor 列挙体に存在する名前だけを使うのなら、
Color.FromName("色名") でその色の Color 構造体が取得できる。
だから Red や White なら偶然にもこれでOK。
でも、KnownColor 列挙体に無い色名も使うのなら、
Color.FromName メソッドは諦めて
独自の色名から rgb 値を得る Dictionary を作っておくといい。
0723デフォルトの名無しさん
2009/11/16(月) 21:01:28サンプルにある e.PageBounds がページサイズ、e.MarginBounds がマージンの内側。
このサンプルはマージンの内側にリッチテキストをレンダリングするわけ。
インチ換算もサンプルをよく読むと
//Convert the unit used by the .NET framework (1/100 inch)
//and the unit used by Win32 API calls (twips 1/1440 inch)
private const double anInch = 14.4;
とある。
俺はどうしたっけかなーと、ソース確認。
// 正直、位置は適当・・・
graphics.DrawImage(logo, PageBounds.Width - 60 - logoWidth, 10, logoWidth, logoHeight);
とか書いてあってフイタ。
0724デフォルトの名無しさん
2009/11/16(月) 21:30:33意図的に判断文に入れていないのかどうかはコンパイラには判断できないからねー
0725デフォルトの名無しさん
2009/11/16(月) 21:39:06メソッド呼び出しにするとかどうかな?
Enum じゃなくなっちゃうけど。
0726デフォルトの名無しさん
2009/11/16(月) 22:30:02方法だと上手く並びません。どのように書いたら上手く並べられますでしょうか?。
int insert_point = -1;
foreach (ListViewItem lvis in listView1.Items)
{
if (DateTime.Parse(lvis.Text) < InsterDateTime)
{
insert_point = lvis.Index;
}
}
if (insert_point == -1)
{
lvi = listView1.Items.Add(insert.DateTime);
}
else
{
lvi = listView1.Items.Insert(insert_point, insert.DateTime);
}
0727デフォルトの名無しさん
2009/11/16(月) 22:37:40これが
原因のような
気がする
0728デフォルトの名無しさん
2009/11/16(月) 22:38:36突っ込めばいいじゃん
0729デフォルトの名無しさん
2009/11/16(月) 22:43:26×insert_point = lvis.Index;
○insert_point = lvis.Index+1;
じゃないかな?
例えば一個しかない場合にDateTime.Parse(lvis.Text) < InsterDateTimeだった
としてlvis.Index==0だから先頭に突っ込んじゃう。
0730デフォルトの名無しさん
2009/11/16(月) 22:46:58複数のRSSを時間をずらしながら習得しているのでその度に全部List等に入れてソートするのは
どうなのだろうと思うのです。それから日付が新しい(現在時刻に近い)ものほど上に持って来たい
ので+1だと下に来ちゃいますよね。
0731デフォルトの名無しさん
2009/11/16(月) 22:47:14ソートはソートであって、ListViewなんか一切関係ないと思うんだが。
0732デフォルトの名無しさん
2009/11/16(月) 22:47:25ぶちこんどけ。
0733デフォルトの名無しさん
2009/11/16(月) 22:49:390734デフォルトの名無しさん
2009/11/16(月) 22:50:370735デフォルトの名無しさん
2009/11/16(月) 22:51:08列挙型の値が追加されるだけならswitch構文が適切じゃないかな。
defaultでNotImplementedExceptionを返してあげればいい。
0736デフォルトの名無しさん
2009/11/16(月) 22:52:25なんでMSDNで調べてからものを考えないの?
0737デフォルトの名無しさん
2009/11/16(月) 22:53:100738デフォルトの名無しさん
2009/11/16(月) 22:53:23100ns刻みの内部表現で比較される
0739デフォルトの名無しさん
2009/11/16(月) 23:07:29小さくなるから当たり前ですね;。
insert_point = lvis.Index;
break;
0740デフォルトの名無しさん
2009/11/17(火) 01:22:22元のようにフォームデザイナで表示するにはどのようにすれば良いでしょうか?
0741デフォルトの名無しさん
2009/11/17(火) 01:26:210742デフォルトの名無しさん
2009/11/17(火) 01:33:25ありがとうございます。
感謝感謝感謝です。
0743デフォルトの名無しさん
2009/11/17(火) 01:34:270744デフォルトの名無しさん
2009/11/17(火) 01:36:11はい。ただ、何が原因なのかは分かりません。
追加部分を削除しても戻りませんので…。
ちなみに実行後は通常通りフォームが表示されます。
0745デフォルトの名無しさん
2009/11/17(火) 01:40:360746デフォルトの名無しさん
2009/11/17(火) 01:41:01すみません、普通のHTMLのようでした。htmlファイルに突っ込んでブラウザで開くと、
こんなかんじの分が表示されます。一部抜粋
クラス Form1 はチE��インできますが、ファイルの最初��Eクラスではありません。
Visual Studio では、デザイナ��Eファイルの最初��Eクラスを使用する忁E��があります。
クラスがファイルの最初��EクラスになるよぁE��クラス コードを移動して、デザイナを再度読み込んでください、E
0747デフォルトの名無しさん
2009/11/17(火) 02:00:23フォームより前の部分に自分でクラスのコードを追加したでしょ
追加したクラスを別ファイルに移せば直ると思うよ
0748デフォルトの名無しさん
2009/11/17(火) 02:30:38解決しました!
ありがとうございます。
0749デフォルトの名無しさん
2009/11/17(火) 03:36:16Form上のボタンを押したときにmp3を再生する、
という動作を実現したいのですが下記のようにエラーが出て完全に詰まっています。
「FileLoadExceptionはハンドルされませんでした。
混合モード アセンブリはバージョン 'v1.1.4322' のランタイムに対して作成されており、追加の構成情報がないと 4.0 ランタイムでは読み込めません。」
(※こんな感じです→http://gyazo.com/4b23a2794878de446303f7841d75d8d4.png)
音楽ファイルを読み込んでいる箇所は以下の通りですが、特に読み込みに関して問題があるとは思えません。
Audio a = new Audio("C:\\test.mp3");
a.play();
SoundPlayer等は使わずにDirectXのこの方法で再生したいのですが、助言をいただけないでしょうか?
0750デフォルトの名無しさん
2009/11/17(火) 03:41:35dxdiagでバージョン見てみた?
0751デフォルトの名無しさん
2009/11/17(火) 08:35:25矢印キーを押したら勝手にフォーカスうつってウザイんだけど
あの設定無効化する方法ない?
0752デフォルトの名無しさん
2009/11/17(火) 08:37:04親フォームになげるようにして
そっちで潰せばいい
コントロールへの入力を親フォームが奪う方法はぐぐれ
0753デフォルトの名無しさん
2009/11/17(火) 08:39:560754デフォルトの名無しさん
2009/11/17(火) 09:10:48無能は黙ってろよ
0755デフォルトの名無しさん
2009/11/17(火) 09:36:59初心者スレで何ふぁびょってんだおまえ?
0757デフォルトの名無しさん
2009/11/17(火) 09:54:19実際にどうなるか試してみりゃ意味わかるんじゃね?
0758デフォルトの名無しさん
2009/11/17(火) 10:07:580759デフォルトの名無しさん
2009/11/17(火) 10:21:46追試してみた。確かにカーソルキーもタブキーも>>753では検出できんな。
0760デフォルトの名無しさん
2009/11/17(火) 10:27:36できねーから質問してるんだろうがボケが
バカは回答するな
0761デフォルトの名無しさん
2009/11/17(火) 10:31:140762デフォルトの名無しさん
2009/11/17(火) 10:34:13でも、>>760見て教えるのやめたわ
初心者は嘘でもいいからへこへこしてろ
俺らが何年もかけて培ってきた知識、技術の一端をただで提供してやるって言ってるのに
そんな態度で教えてやるわけ無いだろボケ
0763デフォルトの名無しさん
2009/11/17(火) 10:39:52ttp://hightechrider.blogspot.com/2009/10/mixed-mode-assembly-errors-after.html
app.configにこれでどうか
// Managed DirectXは今更感漂うが
0764デフォルトの名無しさん
2009/11/17(火) 10:59:37自分でできない>>760みたいなやつは正直PGやってほしくねぇな
0765デフォルトの名無しさん
2009/11/17(火) 11:01:300766デフォルトの名無しさん
2009/11/17(火) 11:04:26もともと答える気無いくせに偉そうなこと言うな
回答する気のあるやつなら、こういうシンプルな質問なら即レスしてるわ
おまえみたいに答えるスキルもないくせに、スレに常駐して
だらだらとケチ付ける奴はウザイから消えてくれマジで
0767デフォルトの名無しさん
2009/11/17(火) 11:05:29今ならどういうアプローチをすればいいの?
Managed DirectXは古いの?
0768デフォルトの名無しさん
2009/11/17(火) 11:06:05何が「やってほしくない」だよ
選ばれたもののつもりか?だいたい趣味か遊びでプログラム組んでるやつはPGじゃねーし。
市ねよアホンダラ
0769デフォルトの名無しさん
2009/11/17(火) 11:06:320770デフォルトの名無しさん
2009/11/17(火) 11:07:05XNA使うんだ
0771デフォルトの名無しさん
2009/11/17(火) 11:07:58slimdx
0772デフォルトの名無しさん
2009/11/17(火) 11:09:40メタメタメタ!
0773デフォルトの名無しさん
2009/11/17(火) 11:09:52APICodePack
0774デフォルトの名無しさん
2009/11/17(火) 11:10:330775デフォルトの名無しさん
2009/11/17(火) 11:15:56コンストラクタ2(int x) : this()
これでコンストラクタ2実行したらコンストラクタ1が呼ばれるけど
Baseもよばれるのか?実行すりゃすぐわかるけどめんどくせーから誰か答えろ
0776デフォルトの名無しさん
2009/11/17(火) 11:17:500777デフォルトの名無しさん
2009/11/17(火) 11:18:15これ意味なくない
0778デフォルトの名無しさん
2009/11/17(火) 11:22:06よくわからんからkwsk どうなるんだ?
0779デフォルトの名無しさん
2009/11/17(火) 11:24:17質問にすら値しないレベルだ。
0780デフォルトの名無しさん
2009/11/17(火) 11:25:47コンストラクタ2(int x) : this()
これでコンストラクタ2実行したらコンストラクタ1が呼ばれるけど
Baseもよばれるのか?実行すりゃすぐわかるけどめんどくせーから誰か答えろ
まず、コンストラクタ2実行してコンストラクタ1がよばれるわけないよね
0781デフォルトの名無しさん
2009/11/17(火) 11:28:070782デフォルトの名無しさん
2009/11/17(火) 11:28:410783デフォルトの名無しさん
2009/11/17(火) 11:30:320784デフォルトの名無しさん
2009/11/17(火) 11:31:500785デフォルトの名無しさん
2009/11/17(火) 12:06:060786デフォルトの名無しさん
2009/11/17(火) 12:10:06使ってる人のレベルが低いからだよ^^
0787デフォルトの名無しさん
2009/11/17(火) 12:14:59ωとθは各フォームによって指定できるようにするって問題なんですが、、、
すいません、さっぱりです。
助けてください。
0788デフォルトの名無しさん
2009/11/17(火) 12:15:35C分かってねー奴はゴミとか未だに言う人がいるだろう?
新しい世代に数分で自分の所まで到達されたらイラッとくんのさ
プロだったら最新言語の情報収集も欠かすなよと言いたいが
0789デフォルトの名無しさん
2009/11/17(火) 12:16:05宿題スレにお行き
0790デフォルトの名無しさん
2009/11/17(火) 12:18:11スレ違いでサーセン
0791デフォルトの名無しさん
2009/11/17(火) 12:18:12C#,C#の宿題片付けます。
http://pc12.2ch.net/test/read.cgi/tech/1197620454/
0792デフォルトの名無しさん
2009/11/17(火) 12:20:24えっ、少ないって一昔前だろ
0793デフォルトの名無しさん
2009/11/17(火) 12:23:270794デフォルトの名無しさん
2009/11/17(火) 12:46:23PerlとPythonは減ってきたイメージが。
0795デフォルトの名無しさん
2009/11/17(火) 12:51:12作りたい物の実現までの道のりが短く、敷居がずいぶんと低い。
言語構造自体もJavaから引き継いで型厳密なため単純なので理解しやすく、
そのため大昔のBASICよろしく初心者が大勢いるイメージ
>>788 新しい世代が新しい道具で時間を飛び越えてきたとして、イラッとする奴なんているのかww
道具が旧式でも最新でも、プログラミングで重要なのはロジックを展開させる為のノウハウの方なので、
その人の歴が何年であっても、役に立つ人もいるし立たない人もいる
あと重要なのは「自分にとっての新しい知識」である為、例えどれだけ道具が最新だとしても、
自分が不勉強であれば何の役に立たない。
0796デフォルトの名無しさん
2009/11/17(火) 12:57:25しょせん目的を達成する手段
でもWinアプリならC#の使い勝手の良さは抜群だと思う
0797デフォルトの名無しさん
2009/11/17(火) 12:59:300798デフォルトの名無しさん
2009/11/17(火) 13:42:230799デフォルトの名無しさん
2009/11/17(火) 13:44:210800デフォルトの名無しさん
2009/11/17(火) 13:45:150801デフォルトの名無しさん
2009/11/17(火) 13:49:43とにかく多数派の言語を使う奴が大半で
C#のよさが分かる奴なんかほとんどいないんだお
笑うお
0802デフォルトの名無しさん
2009/11/17(火) 13:51:50ただ他人から見て苦労に見えたとしても、本人が知りたくて能動的にがつがつ掘り下げて
深部まで把握していく気持ちがあるなら、確実に地力にはなってくる
その辺りでかなり大きな差は出てくるぜ
例なんて枚挙に暇が無いくらい
0803デフォルトの名無しさん
2009/11/17(火) 13:55:08って場合で、かつ何らかの理由で使い始めた人はそうなるかもなww
0804デフォルトの名無しさん
2009/11/17(火) 14:02:130805デフォルトの名無しさん
2009/11/17(火) 14:02:310806デフォルトの名無しさん
2009/11/17(火) 16:35:53ある文字を入力した時にその文字にあらかじめ設定しておいた別の文字を出力するにはどうすればいいのでしょうか?
例えば1と入力した場合には50、5と入力した場合には7Aと出力し1 5と入力した場合に50 7Aと出力させる感じです。
面倒かと思いますがご教授お願いいたします。
0807デフォルトの名無しさん
2009/11/17(火) 16:54:31private Dictionary<string, string> _list;
private void SetConstData()
{
_list = new Dictionary<string, string>();
_list.Add("1", "50");
_list.Add("5", "7A");
}
private void Text1_Change(object sender, EventArgs e)
{
label1.Text = GetNewString(Text1.Text);
}
private string GetNewString(string text)
{
if (string.IsNullOrEmpty(text)) return null;
List<string> resList = new List<string>();
for (int i = 0; i < text.Length; i++)
{
string temp = text.Substring(i, 1);
if (_list.ContainsKey(temp))
resList.Add(_list[temp]);
else
resList.Add(_illigalStrig);
}
return string.Join(" ", resList.ToArray());
}
適当に試してもいないけどこんな感じ?
予定外の文字とかの処理はどうするか知らんが・・・・
0808デフォルトの名無しさん
2009/11/17(火) 16:58:16case "1":
syuturyoku="50";
break;
case "5":
syuturyoku="7A";
break;
いこうがんばって書く
0809デフォルトの名無しさん
2009/11/17(火) 17:29:52枚挙に暇が無いっていいうなら
幾つか実例挙げてくれよ
0810デフォルトの名無しさん
2009/11/17(火) 18:18:25変態的なことヤリ放題だな
0811デフォルトの名無しさん
2009/11/17(火) 18:21:440812デフォルトの名無しさん
2009/11/17(火) 18:26:59自由に定義できるんだぞw
0813デフォルトの名無しさん
2009/11/17(火) 18:29:25その代わりに.NET CLRのもっとも強力な点である静的型付けの最適化が無効になるから程々にな。
0814デフォルトの名無しさん
2009/11/17(火) 18:33:38せいぜいボックス化+デリゲート呼び出しのコストが入るだけ
0815デフォルトの名無しさん
2009/11/17(火) 18:47:51ポトペタやパーツの組み合わせ以外にアルゴリズムやロジックや、元々の仕組みを掘り下げた時、
目的だけでなく副次的にや必然から知るようなノウハウってあるだろ
例えば効率のいい分岐、ノード的な表現、ビット演算使った手法など色々
知ってる人には慣れて当たり前に感じる内容でも、知らない人は知らなくて
その点で表現手段が変わってきたり手狭になったり実現できなかったりする。
掘り下げるのも広げるのも自分の技術広げるって意味で同じだから、
興味沸いたら色々試したり調べたりするといいぜって話さ
人はそれを努力と見るかもしれないが、そんな事はどうでもよくて
0816デフォルトの名無しさん
2009/11/17(火) 19:00:020817デフォルトの名無しさん
2009/11/17(火) 19:02:35だんだん言語仕様が太ってきた気がする
0818デフォルトの名無しさん
2009/11/17(火) 19:02:510819デフォルトの名無しさん
2009/11/17(火) 19:06:350820デフォルトの名無しさん
2009/11/17(火) 19:22:56OSで言えばディレクトリとフォルダの違いのようなもの。さほど気にすることはない。
ただ、はっきり言ってしまえばC#に関数はない。
あるのはdelegateと通常のメソッドと静的メソッドだけだ。
他にイベントハンドラやらラムダやらもあるが、その辺は自分で勉強してくれ。
0821デフォルトの名無しさん
2009/11/17(火) 19:33:430822デフォルトの名無しさん
2009/11/17(火) 19:42:36口移ししないとエサ食えないみたいな事言うなよ
0823デフォルトの名無しさん
2009/11/17(火) 19:49:24メソッドはひとかたまりの処理を模したオブジェクトって概念に対して、例えとして
「ふるまい」として名付けられた物
コード部分にだけ逐次的に注目すると変わらないように見えるけど、意味付けが違う、みたいな
例えばC/C++の世界では関数とメソッド(メンバ関数なんて言い方もするが)は、完全に別物
文脈的に話が混線しないならどっちも関数と呼ぶ場合もあるけど、
クラスに紐付いてないただの関数はメソッドとは呼ばない
そんな感じ
0824デフォルトの名無しさん
2009/11/17(火) 19:58:13まあ技術の変わり目にはどんな分野でもこういうアナクロ指向な人っているんだよ。
もちろん、アナクロな彼の言うことにも一理はあるけどね。
そりゃ、洗濯機があるのにあえてたらいで洗濯することで身につく技能だってあるよw
こういう人の欠陥は、視野が狭いから引いた視点から全体を俯瞰して
物事のプライオティを考えることが出来ない点だな。
0825デフォルトの名無しさん
2009/11/17(火) 20:04:42視野を広げる手段の一つを話してる文脈が理解できないとしたら
ちょっと想像力も読解力も足りなくねww
なんでアナクロ扱いなんだよ。思考停止はよくないぞ
0826デフォルトの名無しさん
2009/11/17(火) 20:05:120827デフォルトの名無しさん
2009/11/17(火) 20:06:50数学でいう関数だとそうだよな。
0828デフォルトの名無しさん
2009/11/17(火) 20:11:380829デフォルトの名無しさん
2009/11/17(火) 20:12:18int func(int x,int y){
return x+y;
}
これが関数で
void func(int x,int y){
printf("%d",x+y);
}
これがメソッドだという風に覚えてたわ。
0830デフォルトの名無しさん
2009/11/17(火) 20:22:22.netに最初からついてるフォームとかボタンとかのイベントはわかるんだが・・・
自分でクラスつくるときにどんなイベントを入れればいいのかわからん。
ただのメソッドやデリゲートをクラスに組み込むのと
イベントを組み込むのは機能面でどういう違いがあるんですかい?
メソッドとデリゲートだけじゃ不可能なことでもイベント使ったらできることって例えばどんなの?
0831デフォルトの名無しさん
2009/11/17(火) 20:35:58> イベントを組み込むのは機能面でどういう違いがあるんですかい?
メソッドは方向が違う。クラスの利用者がクラスに処理を依頼する形。
デリゲートやイベントはクラスがクラスの利用者に処理を尋ねるようなもの。
で、本質的にはデリゲートは処理の委譲のためのもの、イベントは通知のためのもの。
実際的にはイベントはデリゲートをラップするプロパティみたいなもの。
add/removeの操作限定なので他の利用者がいきなりnull入れたりすることを気にしなくて済む。
> 自分でクラスつくるときにどんなイベントを入れればいいのかわからん。
状態の変化とかをクラスの利用者に通知したいとき。
> メソッドとデリゲートだけじゃ不可能なことでもイベント使ったらできることって例えばどんなの?
デザイナで扱える。
コールバックに優先順位を付けるとかもやろうと思えばできる。
0832デフォルトの名無しさん
2009/11/17(火) 20:41:04まず、質問はどれかにまとめてくれw
C#のイベントはデザインパターンで言えばObserverパターンにあたり、情報の発信元と受け取り先を分離するために使う。
つまり、発信元ではどこに送るのか、受け取り先ではどこから受け取るのかを考える必要がなくなる。
またイベントハンドラの結びつけさえやればどんなオブジェクト同士でも信号のやり取りができる。
だからこそSystem.Formsではすべてのコントロールのイベントを親のFormで受け取ることができるわけだ。
『メソッドとデリゲートだけじゃ不可能』というが、基本的にチューリング完全なら何でもできるので、
できるかどうかではなく、簡単かどうかで考えるといいよ。
ちなみに大抵は初期化時に静的なイベントパイプラインを構築するだけだと思うが、
これを実行中に動的に切り替えるようにすればさらに強力。Stateパターンなんていらねー。
0833デフォルトの名無しさん
2009/11/17(火) 20:43:470834デフォルトの名無しさん
2009/11/17(火) 20:45:36他クラスから実行出来無いって保証が付くんだよな
0835デフォルトの名無しさん
2009/11/17(火) 20:52:59WikipediaやMSDNくらいは読んでから質問してるんだよな?
0836デフォルトの名無しさん
2009/11/17(火) 20:58:31ID,パスの流出可能性を出来るだけ抑えるにはどうすればいいと思いますか?
0837デフォルトの名無しさん
2009/11/17(火) 21:03:08リフレクションの前には儚い保証ではあるけどな
0838デフォルトの名無しさん
2009/11/17(火) 21:32:17なにをやりたいのか知らないが、俺なら間にCGIでも挟む
直でFTPでなくて80番経由
0839デフォルトの名無しさん
2009/11/17(火) 22:02:02鯖に環境が入っていないのでそうすることも出来ないです
やっぱり、どう暗号化してもパス埋め込むのは駄目ですかねぇ。。
0840デフォルトの名無しさん
2009/11/17(火) 22:16:390841デフォルトの名無しさん
2009/11/17(火) 22:18:33それに暗号化してもパケット見たらばれるし。
自PCにならパケットスニファなんて好きなだけ入れられるもんな。
0842デフォルトの名無しさん
2009/11/17(火) 22:19:040843デフォルトの名無しさん
2009/11/17(火) 22:24:16サイズの大きい画像を256四方で分割したいのです。
実際分割してみると、エクスプローラ上では256*256と表示されるのですが、
Fireworksで読み込ませると、256*256, 255*255, 256*256といった具合に、
元の画像のSizeによって256*256にならず、
切り取った画像を256四方に並べると隙間ができてしまいます。
ペイントに貼り付けるとx=0, y=0のラインが真っ黒になります(255*255)。
元画像のImageオブジェクトの
HorizontalResolution,VerticalResolutionは96.01199 なのですが、
コピー先 bmp = new Bitmap(256,256);
のHorizontalResolution,Vert(ry は96.0と異なるのでこの辺で誤差が出てる?
Graphics.FromHwnd にてモニタのdpiを取得すると96.0と表示されます。
でもReadOnlyプロパティなのでbmpのResolutionを96.01199にできない。
矩形画像を正しく切り取り、保存する方法を教えてください。
0844843
2009/11/17(火) 22:25:52int pixel = 256;
Bitmap bmp = null;
Graphics g = null;
Rectangle rect;
System.IO.FileInfo fInfo = new System.IO.FileInfo(filePath);
Image origin = Image.FromFile(fInfo.FullName);
int wBlocks = (int)Math.Ceiling((double)origin.Width / (double)pixel);
int hBlocks = (int)Math.Ceiling((double)origin.Height / (double)pixel);
Console.WriteLine(filePath);
for (int h = 0; h < hBlocks; h++)
{
for (int w = 0; w < wBlocks; w++)
{
bmp = new Bitmap(pixel, pixel);
g = Graphics.FromImage(bmp);
rect = new Rectangle((w * pixel), (h * pixel), pixel, pixel);
g.DrawImage(origin, 0, 0, rect, GraphicsUnit.Pixel);
string destName = fInfo.Directory + "\\" + fInfo.Name.Replace(fInfo.Extension, string.Empty) + "_" + h.ToString("000") + "_" + w.ToString("000") + ".png";
bmp.Save(destName, System.Drawing.Imaging.ImageFormat.Png);
g.Dispose();
bmp.Dispose();
}
}
origin.Dispose();
0845デフォルトの名無しさん
2009/11/17(火) 22:26:550846デフォルトの名無しさん
2009/11/17(火) 22:30:520847デフォルトの名無しさん
2009/11/17(火) 22:38:57繋ぐ先のFTPサーバのアカウント操作権があるならそれもありだよね。
ダウンロードのみならanonymous FTPにしちゃうってのもありだ。
0848デフォルトの名無しさん
2009/11/17(火) 22:43:110849デフォルトの名無しさん
2009/11/17(火) 22:45:27あー、なるほど。
でもアップロードも必要なので、anonymousは出来ないですね
サーバ側のFTP制御設定弄ってみます。
0850デフォルトの名無しさん
2009/11/17(火) 22:45:55どうやったかなぁ。とりあえず座標系とかオフセットモードが
関係してた希ガス。PixelOffsetMode.None してみると駄目?
補間モードとかもいじらなあかんかもしれん。
0851デフォルトの名無しさん
2009/11/17(火) 22:45:550852デフォルトの名無しさん
2009/11/17(火) 22:46:59Fireworks以外のドローソフトだとどうなるの?
0853デフォルトの名無しさん
2009/11/17(火) 22:56:04ツッコミどころは色々あるが、さしあたりはバグというほどのものはなさそうだな。
FireworksがDPIを真正直に解釈して誤動作起こしてるのかもしれんね。
まずはbmp形式で保存して、バイナリエディタで眺めてみたら?
0854デフォルトの名無しさん
2009/11/17(火) 22:56:54そんなに効果あるものなの?
実際使うのなら、起動時に複合化して、
ずっと変数に持たしておいてもいいの?
0855デフォルトの名無しさん
2009/11/17(火) 22:58:36何を? パスワードとか大事なモノを扱うときは、SecureString とか使う方がいいね。
0856デフォルトの名無しさん
2009/11/17(火) 22:59:10プロトコルの用途がちげぇって結論になった気がする
0857デフォルトの名無しさん
2009/11/17(火) 23:06:230858デフォルトの名無しさん
2009/11/17(火) 23:07:55だな。まずはその腐った要求仕様を窓から投げ捨てろといいたい。
で、代わりのプロトコルを考えるとするならどうするか、なんだが。
ユーザーのPCから特定のバイナリデータを手元のサーバーに送りつけるというのでいいんだな?
――とはいうものの、考えてみると、案外これというやりやすい方法が見当たらないので困ったもんだ。
さしあたり思いつくのがHTTPのPOSTで送るかメールで送るか、あとRDBにクエリで送りつけるかだが。
IISが運用できるならC#で解決できるからHTTPで決まりだろう。
メールの場合、LinuxやMacならともかく、Windowsは送信できる環境が保証されてないので
メールを正しく送信できることが保証できない。
企業アプリみたいにこちらで動作環境を自由に決められるなら何とでもなるんだけどね。
0859デフォルトの名無しさん
2009/11/17(火) 23:09:24パスワードを暗号化して埋めこんだんだとしても
IL解読して複合化の手順読みとられたらそれで終りだし
メモリに持ったり通信したりするときに取られちゃ意味ないし
0860デフォルトの名無しさん
2009/11/17(火) 23:10:09それは、プログラムからFTPは利用しないほうがいいってことですよね?
といっても、CGIやPHPが使えればそちらを使うのですが、
使えないので、ファイルの書き換えを行うには直接FTPするしか無いと思いまして・・・
取りあえずアカウント制御で、ディレクトリ制限を掛けてみました。
これでしばらく挙動見たいと思います
0861デフォルトの名無しさん
2009/11/17(火) 23:11:500862デフォルトの名無しさん
2009/11/17(火) 23:13:120863デフォルトの名無しさん
2009/11/17(火) 23:13:37そのユーザIDとパスワードはFTPアカウント専用なん?
そこが分離されててchrootとかされてるならまだなんぼかマシなんだろうけど。
0864デフォルトの名無しさん
2009/11/17(火) 23:16:300865デフォルトの名無しさん
2009/11/17(火) 23:21:01IISも無理です、基本サーバ動作のモノは全てアウトでして。
RDBは思いつきませんでした、が・・・見た感じ無理そうです・・・
>>861 レンタルサーバはちょっと厳しいです
>>863 chrootされてますです
0866デフォルトの名無しさん
2009/11/17(火) 23:24:51とりあえず大丈夫なのかもしれないね
0867デフォルトの名無しさん
2009/11/17(火) 23:26:060868デフォルトの名無しさん
2009/11/17(火) 23:31:02もっと良い方法があれば教えてください。
これでしばらく試してみます。ありがとうございました。
0869749
2009/11/18(水) 00:44:38遅くなりましたが、ありがとうございます!
こちらにある通りApp.configを修正して実行してみましたが、やはり上手くいきませんでした(固まっちゃって再起動)
ttp://hightechrider.blogspot.com/2009/10/mixed-mode-assembly-errors-after.html
あまり理解できていませんが、最近のランタイムでは使えなくなった可能性が高いということでしょうか。
とりあえず今回は他の方法で実現するという方向性に逃げました。
0870デフォルトの名無しさん
2009/11/18(水) 00:56:520871デフォルトの名無しさん
2009/11/18(水) 01:01:420872デフォルトの名無しさん
2009/11/18(水) 01:02:13ググって飛んだら
申し訳ございません。ご指定のページが見つかりませんでした。
といわれました
0873デフォルトの名無しさん
2009/11/18(水) 01:04:260874デフォルトの名無しさん
2009/11/18(水) 01:32:13ttp://www.microsoft.com/downloads/details.aspx?FamilyID=71deb800-c591-4f97-a900-bea146e4fae1&DisplayLang=en
最新はコレ ISOとWebインストール
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=7bbe5eda-5062-4ebb-83c7-d3c5ff92a373&DisplayLang=ja
こっちは日本語版MSDNライブラリの最新
0875デフォルトの名無しさん
2009/11/18(水) 01:34:420876デフォルトの名無しさん
2009/11/18(水) 02:03:51case BAR: /*....*/ break;
case BAZ: /*....*/ break;
default:
// バグってなければ絶対こないところ
}
↑のプログラムで default:にいっちゃった時に例外投げたいんだけど、
引数エラーのときの ArgumentException みたいに投げるべき
例外ってある?
0877デフォルトの名無しさん
2009/11/18(水) 02:07:550878デフォルトの名無しさん
2009/11/18(水) 02:10:44のようなものっていわれても
それでなにしたいのさ
0879843
2009/11/18(水) 02:24:33一回のプロセスで一度に大量の画像を分割するので
LockBitsは結構しんどかったりします。
unsafeでポインタ使えば?とか言われそうですが^^;
>>852
ペイントの例をすでに書いています。
ほかのソフトはためしてません。
>>853
色々ある突っ込みどころ 教えてください。
rectだけ宣言時にnull代入してないぞ、とか
そういうのは無しでおねがいします。
bmpで保存すると、
fireworksで表示するとペイントのときのように
x=0,y=0のラインが黒になります。
>>857
描画先をRectangle(0,0,pixel,pixel)にしたら
正常に動作しました。
ありがとうございました。
0880デフォルトの名無しさん
2009/11/18(水) 02:29:46InvalidFooException
0881デフォルトの名無しさん
2009/11/18(水) 02:35:28すみません。定数が用意されているならそれを使おうかと思いまして
0882デフォルトの名無しさん
2009/11/18(水) 02:51:33メソッド利用者にパラメータが間違っていることを通知したい場合
→ InvalidEnumArgumentException
コーディングミスによってありえないフローになっているのを検出したい場合
→ Debug.Fail(), Trace.Fail()
0883デフォルトの名無しさん
2009/11/18(水) 03:31:43>857の言うように、GraphicsUnit指定による呼び出し方によって発生する内部の変換処理を避けるわけか。
まあそりゃあそうだわな。そこが今回の不具合の直接の原因なわけだし。
>色々ある突っ込みどころ 教えてください。
じゃあ手短に。
・wBlocks、整数演算で十分。pixel-1を足してpixelで割ればいい。
・Disposeするオブジェクトはなるべくusing構文で初期化する。明示的な後始末はなるべく書かないのがベター。
・切り出しファイルの名前と形式は外から変えられるように書く。というかこんなところで書くものじゃない。あとstring.Format()
・オブジェクト、=nullの初期化なんてイラネ。何そのC++もどき。むしろ必要なところでvar構文で初期化して使う。
こんなとこかな。
0884デフォルトの名無しさん
2009/11/18(水) 04:07:59個人で使う小規模なプログラムってメンバ変数をpublicにしおいても問題ないよね?
0885デフォルトの名無しさん
2009/11/18(水) 04:12:180886843
2009/11/18(水) 04:45:56いろいろある突っ込みどころ ありがとうございます。
・wBlocksの件
アルゴリズムの問題ですね。
たしかに整数演算で簡潔するのでその方がスマートです。
勉強になりました。
・usingについて
例外が発生するとdisposeされないのでusingを書くべきですが
動作検証用サンプルでしたので急ピッチですのであしからず。
・切り出しファイルの名前を外から指定について
同じく、動作検証用サンプルですので大目にみてください。
StringFormatもargs指定ミスはコンパイル時に発見されないので +でつないでます。
・必要なところでvar指定
2重forで300回近くループするのでfor内部で変数宣言は好ましくないのでは?
ループ内部で使いまわせる変数は外出しすべきだと僕は思います。
また、null代入は無駄なのは分かってますが
「初期化してますよ」ってメッセージをこめたソースを書くのは悪くないと僕は思います。
ちなみにBitmapを毎回new(必然的にGraphicsもnew) してるのは画像サイズが256の倍数でないときに
右端と下端の矩形を描画すると、前回の描画が残ってしまうための回避策です。
Graphics.Clearで思った動作するかも。テストしてないのでなんともいえませんが。
varは メソッドの戻り値の型をそのまま受けるとき
linq+foreach使うときなど、ジェネリックの型名なんだっけってなるとき
使用するのはいいと思うのですが、
C#使ってるんだからその場で初期化する変数は型はしっかり書いたほうが
いいと自分は思ってます。賛否はあると思いますが。
(型付DataSetのテーブルアダプタみたいに型名が長いと初期化が冗長になるので
そういうときは見易さを考慮して左辺はvarで受けたりします。)
コーディング規則が決められているときはもちろんそれに従います。
0887デフォルトの名無しさん
2009/11/18(水) 05:25:450888デフォルトの名無しさん
2009/11/18(水) 05:37:22俺はおまえさんの主張に大体同意だな
そもそも宗教的なことまで突っ込みを入れるのは回答者の分を超えてると思うよ
0889デフォルトの名無しさん
2009/11/18(水) 06:11:25俺もおまえさん寄りの意見だが、
突っ込んでくださいと言っておきながら、
それは違う、あれは違うと条件を付けて反論するのはどうかと思う。
自信があるなら最初から聞くな。
聞いた以上は真摯に受け止めるか、
変なやつに聞いちゃったとスルーなさい。
0890デフォルトの名無しさん
2009/11/18(水) 07:30:400891デフォルトの名無しさん
2009/11/18(水) 07:39:05それはおかしい
教えを請うたからといって間違った回答や、
自分の方針と反する内容を無条件で聞く必要はない
かといってスルーするのは礼を失している
886の対応は真摯な態度だと思うぞ
0892デフォルトの名無しさん
2009/11/18(水) 07:40:20>2重forで300回近くループするのでfor内部で変数宣言は好ましくないのでは?
>ループ内部で使いまわせる変数は外出しすべきだと僕は思います。
少なくとも今回のケースでは、変数宣言を外に書いても速度的にメリット無いよ。
変数宣言を一回通るたびに実行コストがかかるとか杓子定規に考えてない?
0893デフォルトの名無しさん
2009/11/18(水) 07:44:00なんだろうな。
cもc++もjavaもmainで始まったのに、なぜC#はMainなの?それだけ気になる。
0894デフォルトの名無しさん
2009/11/18(水) 07:45:57え、そうなの?
スコープ入ったときにスタックに確保、
スコープ出るときにスタックから解放って処理普通にやってんのかと思ってた。
0895デフォルトの名無しさん
2009/11/18(水) 07:47:47命名規約の問題でしょ。
メソッド名はUpperCamelCaseで表すってルールにしてるから"M"ainになってるだけ。
なんでUpperCamelCaseを採用したのかは言語設計者のポリシーなんだろね。
0896デフォルトの名無しさん
2009/11/18(水) 07:56:400897デフォルトの名無しさん
2009/11/18(水) 07:57:42無条件で聞けなんてどこにかいてあんの?
ま、どっちもどっちだ
0898デフォルトの名無しさん
2009/11/18(水) 08:01:58>聞いた以上は真摯に受け止め
0899デフォルトの名無しさん
2009/11/18(水) 08:09:20C#で書いたコードをReflectorで逆コンパイルしたときに現れるgotoだらけのコード見たことない?
見てみれば分かるけど、結構オブジェクトの寿命が変わるような書き換えがされている。
変数スコープが終わる前にGCされてファイナライザが呼ばれることがあるのはこのため。
0900デフォルトの名無しさん
2009/11/18(水) 08:12:42なるほど
ちまちましたコードレベルの最適化はほんとに意味なくなってきてるんだなぁ
勉強になった
0901デフォルトの名無しさん
2009/11/18(水) 08:41:55日本語が理解できない人だったんですね。
これは失礼しました。
0902デフォルトの名無しさん
2009/11/18(水) 08:48:42>StringFormatもargs指定ミスはコンパイル時に発見されないので +でつないでます。
なんでやねん。テストコード書けばテストできる範囲でしょ。
>2重forで300回近くループするのでfor内部で変数宣言は好ましくないのでは?
実行時最適化が行われる.NET Frameworkの世界でそんな議論しても無意味だよ。
そして、むしろvar構文自体より(便利なものは積極的に使うべきだと思うが)ローカルインスタンスの明示的な初期化(=null;)のほうが問題。
C#ではすべての変数はデフォルト値で初期化されることが保証されているので
object obj=null;
などという初期化は無意味。それどころか変数が使われなくなると初期化なしだとワーニング出してくれるけど
初期化してると出してくれなくなったりするので余計に悪化している。
0903デフォルトの名無しさん
2009/11/18(水) 09:14:39Javaの皮を被ったDelphiだから
0904デフォルトの名無しさん
2009/11/18(水) 09:18:19具体的に何が起きるのかはわからんけど
dynamicもしかり・・・
0905デフォルトの名無しさん
2009/11/18(水) 09:19:59>>904
むしろvar使ったら読みづらくなるようなスコープの長い変数を作るのが悪い
0906デフォルトの名無しさん
2009/11/18(水) 09:21:56> object obj=null;
> などという初期化は無意味。
可読性的には意味がある
>それどころか変数が使われなくなると初期化なしだとワーニング出してくれるけど
> 初期化してると出してくれなくなったりするので余計に悪化している。
ダウト
0907デフォルトの名無しさん
2009/11/18(水) 09:23:41object obj = null;
どう可読性に違いが
0908905
2009/11/18(水) 09:25:02フィールドを既定値(default(type)の値)で初期化するとFxCopで警告出るよ
0909デフォルトの名無しさん
2009/11/18(水) 09:29:300910デフォルトの名無しさん
2009/11/18(水) 09:33:25これだな
パフォーマンスは今のコンパイラでは関係ないが冗長だからやめろということらしい
FxCopはコメントのルールだけ外しとけば日本語ソースでも普通に使える
0911デフォルトの名無しさん
2009/11/18(水) 09:35:13そんなのを気にしながらBitmapをループ内で作るって…
0912デフォルトの名無しさん
2009/11/18(水) 09:39:02確実に進化してるんだなぁ
0913デフォルトの名無しさん
2009/11/18(水) 09:39:09皆が皆C#だけやってると思うなよ?
0914デフォルトの名無しさん
2009/11/18(水) 09:39:590915デフォルトの名無しさん
2009/11/18(水) 09:42:13だから必ずどこかで代入してから参照する必要があり、でないとエラーになる。
もちろん宣言と同時に代入するのでなくとも、どこかで入れればいいが、
宣言で代入するのが普通は分かりやすいけどな(というかできるだけ最初に代入する必要がある場所で宣言する)。
初期化が保証されてるのはフィールドだ。
0916デフォルトの名無しさん
2009/11/18(水) 09:45:37>実行時最適化が行われる.NET Frameworkの世界でそんな議論しても無意味だよ。
実行時最適化関係ないよ。
ILの時点でローカル変数はメソッドスコープで確保される。
0917デフォルトの名無しさん
2009/11/18(水) 09:51:52コード読む時も余計なこと考えなくてすむしメソッド化する時とかも便利だしなぁ。
#メソッド化すると呼び出しコスト↑と結局毎回確保になっちゃうけど
0918デフォルトの名無しさん
2009/11/18(水) 10:00:03とはいってもかなり小さい場合だけだったとは思うけど。
0919デフォルトの名無しさん
2009/11/18(水) 10:11:41ttp://msdn.microsoft.com/ja-jp/library/aa691170(VS.71).aspx
これか、なるほど
俺ずっと勘違いしてたわ。
0920デフォルトの名無しさん
2009/11/18(水) 10:16:40ギリギリの極限まで速度を追い求めない限り
些細な速度UPを得るよりも可読・メンテ性を維持したい
というのが俺の持論
もちろん事務系とかの話でFA系の処理とかになれば必要なところは可読性捨ててでも速度UPとるけど
0921デフォルトの名無しさん
2009/11/18(水) 10:18:50ループ内で宣言したくないのって言うと、
よっぽどでかいインスタンスを毎回newして捨てるとか
そいういう場合?
0922デフォルトの名無しさん
2009/11/18(水) 10:49:08宣言だけループ外に置いて、わざわざミスが起こる確率を増加させる必要はない
あと、理由もなくローカル変数を規定値などに初期化するのも良くない
たとえば、未初期化の変数を参照するとコンパイルエラーになるので即座に分かるが、
無駄に初期化していると問題の発覚が遅れ、デバッグに要する時間も増える
0923デフォルトの名無しさん
2009/11/18(水) 12:28:52処理上で意味のある値で初期化するんであって
常に null で初期化すると勘違いしてるから
そういう的外れな反論が飛び出すんだろう
0924デフォルトの名無しさん
2009/11/18(水) 12:45:14もちろんサイズがでかかったりインスタンス化が重いもので
かつ再利用できるものならループ内でのインスタンス化を削減するのもいいが、
何でもかんでも削減すりゃいいってもんじゃない。
よっぽどタイトなループなら別だが。
個人的には、よく言われるStringBuilderの再利用なんかも微妙だと思ってる。
平均的にはある程度効果はあるが、常識のようにやるべきこととは思えない。
0925デフォルトの名無しさん
2009/11/18(水) 12:46:59意味あって null で初期化すんのはべつにかまわんと思うけどな。
0926デフォルトの名無しさん
2009/11/18(水) 12:48:26そういうのは最適化部分を狭いメソッド内に押し込めればOKってルールでやってるなあ。
0927デフォルトの名無しさん
2009/11/18(水) 12:50:40その後StringBuilderに変更を加えた時点でバッファは複製される。
当たり前だけど結局メモリの再確保は起こるわけで、
StringBuilderを新たにインスタンス化するのと大差があるわけではない。
0928デフォルトの名無しさん
2009/11/18(水) 12:56:540929デフォルトの名無しさん
2009/11/18(水) 12:57:560930デフォルトの名無しさん
2009/11/18(水) 13:00:190931デフォルトの名無しさん
2009/11/18(水) 13:04:500932デフォルトの名無しさん
2009/11/18(水) 13:22:080933デフォルトの名無しさん
2009/11/18(水) 13:27:34スマンカッタ。確かにフィールド、ローカル変数共に初期化してても他で使ってなかったらワーニング出るな。
初期化してないときとワーニングの内容は変わるけど。
>可読性的には意味がある
意味がないことが多い。922の言うように未初期化参照のコンパイルエラーを出させるほうが素直なコード。
初期化コード自体がif文で分岐してるとかなら初期値を与えることはあるが、それは例外的な措置だよね。
>>923,925
844のBitmap、Graphicsインスタンスのnull初期化は不要だよな?
0934デフォルトの名無しさん
2009/11/18(水) 13:32:32宣言位置が適切なら、多くの場合その場で初期化が自然になるからね。
もちろん意味のない初期化はするべきではないけど、
上記を守れば基本的にそういうのはなくなるはず。
0935デフォルトの名無しさん
2009/11/18(水) 13:54:00>844のBitmap、Graphicsインスタンスのnull初期化は不要だよな?
不要だがあったからといって悪い訳じゃない
0936デフォルトの名無しさん
2009/11/18(水) 14:05:32戦ってまで守らなきゃいけない一線ではないわな
どっちにしても
0937デフォルトの名無しさん
2009/11/18(水) 14:14:32>Bitmap、Graphicsインスタンスのnull初期化は不要だよな?
インスタンスのnull初期化じゃなくて変数(ry
0938デフォルトの名無しさん
2009/11/18(水) 15:48:55この時、formBのリソースは全て開放されますよね?。
0939デフォルトの名無しさん
2009/11/18(水) 15:52:190940デフォルトの名無しさん
2009/11/18(水) 15:57:440941デフォルトの名無しさん
2009/11/18(水) 16:17:16(でもこれってたしかVB.NETの話だったような。C#では規定のインスタンスってあるんかな?)
0942938
2009/11/18(水) 16:27:33ありがとうございます
0943デフォルトの名無しさん
2009/11/18(水) 16:32:41いあ、そういふ意味ではないんだが。
Form_Closingイベントとメモリ開放は別話。
0944デフォルトの名無しさん
2009/11/18(水) 16:43:17モーダルダイアログならFormAで次のようにFormBを表示し
using(Form formB = new FormB())
{
formB.ShowDialog(this);
}
formBフォームの中で使ってるリソースはFormBのDisposeをオーバーライドして行う
0945デフォルトの名無しさん
2009/11/18(水) 18:36:440946デフォルトの名無しさん
2009/11/18(水) 18:53:18学生さんだね。
社会に出ればわかるけど冤罪も罪のうち、疑わしきは罰するってのは法治国家の不文律だよ。
0947デフォルトの名無しさん
2009/11/18(水) 18:57:320948デフォルトの名無しさん
2009/11/18(水) 19:17:47なんでそんな無茶しようとするんだよっ
0949デフォルトの名無しさん
2009/11/18(水) 19:28:050950デフォルトの名無しさん
2009/11/18(水) 19:33:39最低値から最大値までの間で、除外値以外がランダム算出されるまで繰り返し、
それを返すためにはどうすればいいですか?
0951デフォルトの名無しさん
2009/11/18(水) 19:41:46そのまんま言ったとおりに書けるような・・・
なにがわからない?
乱数?
Random rand = new Random();
int value = rand.Next(min, max);
0952デフォルトの名無しさん
2009/11/18(水) 19:42:55それじゃ max が含まれないから max + 1 な
0953デフォルトの名無しさん
2009/11/18(水) 19:49:53除外値を考慮していないぞ
0954デフォルトの名無しさん
2009/11/18(水) 19:56:30いや、だからあとは除外値以外でるまでループすりゃいいだけでしょうが・・・
こんなのの何がわからないのかがわからんわ
0955デフォルトの名無しさん
2009/11/18(水) 20:10:29やっぱりループさせないと駄目ですかね
0956デフォルトの名無しさん
2009/11/18(水) 20:13:14仮に除外値を指定できたとしても内部で除外値以外が出るまでループする以外に実装する方法がない
0957デフォルトの名無しさん
2009/11/18(水) 20:13:540958デフォルトの名無しさん
2009/11/18(水) 20:28:210959デフォルトの名無しさん
2009/11/18(水) 20:28:560960デフォルトの名無しさん
2009/11/18(水) 20:34:200961デフォルトの名無しさん
2009/11/18(水) 20:37:44前の呼び出しから1ms以上経ってないと同じ値が出るけど
0962デフォルトの名無しさん
2009/11/18(水) 20:46:070963デフォルトの名無しさん
2009/11/18(水) 20:48:490964デフォルトの名無しさん
2009/11/18(水) 20:51:33あたりまえじゃん・・・
ドキュメント読めよ・・・
0965デフォルトの名無しさん
2009/11/18(水) 20:59:530966デフォルトの名無しさん
2009/11/18(水) 21:37:00this.FormBorderStyle = FormBorderStyle.None;で枠を消す
this.Regionプロパティを弄って好きな形に設定する
0967デフォルトの名無しさん
2009/11/18(水) 21:40:38であるまげどん
エンダアアアァァァァ〜イヤアアア〜〜
0968デフォルトの名無しさん
2009/11/18(水) 21:42:09クラスの概念がよく分かりません。
Form1で始めに作られたクラスにメソッドとイベントハンドラ組み合わせるだけで、
大抵のプログラムは作れると思うのですが、本来の使い方と間違ってたりしますか?
0969デフォルトの名無しさん
2009/11/18(水) 21:48:380970デフォルトの名無しさん
2009/11/18(水) 21:50:48MakeTransparencyだかthis.BackColor=Color.Transparensy
だかなんだかでできた。
>>968
それでもたいていのプログラムは作れるが
他人が作ったコードやサンプルを読むことができない
それでもいいならそれでいいんじゃね
0971デフォルトの名無しさん
2009/11/18(水) 21:51:59インスタンスだとか、継承だとかも分かってるんですが、
実際に使う機会有りますか?
クラスも1つのフォームに1つあれば難無さそうなんですが・・・
0972デフォルトの名無しさん
2009/11/18(水) 21:52:10クラスの概念て話ならオブジェクト指向、あたりでググれば解説が山盛り出てくるぞ
あと Form1 云々の話は Windows の Visual Studio C# 等の固有の話で、
それで色々出来るからってそれが間違いとか正しいとかってもんじゃない
てか、それとクラスの概念の話はあんまり関係ない
0973デフォルトの名無しさん
2009/11/18(水) 21:54:45え?おまえフォームのインスタンス生成しないでフォームつかってんの?
二つのフォームつくるときとかどうしてんの?ありえねぇよ
0974デフォルトの名無しさん
2009/11/18(水) 21:58:11あ、一気にもやもやしてたこと理解しました
Form生成するときにインスタンス使いますね。あー。あー。
俺何言ってるんだろう。お恥ずかしい。
0975デフォルトの名無しさん
2009/11/18(水) 21:58:39まだ必要と思える経験に出くわしてないんだと思う。
実際に使う機会どころか、むしろ必須と言うか‥
てか想像してみ。ライブラリにあるクラスが山盛り1個のソースに突っ込まれてる状態を
クラス単位での分離分業が不要だとすると、極端な話そうなってしまう
0976デフォルトの名無しさん
2009/11/18(水) 22:02:010977デフォルトの名無しさん
2009/11/18(水) 22:19:340978デフォルトの名無しさん
2009/11/18(水) 22:20:47int x;
int& y = x;
みたいなことって出来ないですか?
refって引数にしか使えないですよね?
ポインタを使うと、時間が経つとガベージコレクションでxのアドレスが変わるのか、
yが指す値が変わってしまうのでダメっぽいのですが・・・
0979デフォルトの名無しさん
2009/11/18(水) 22:21:18自分で定義するしか。
0981デフォルトの名無しさん
2009/11/18(水) 22:29:38通常の変数で参照型を使いたいならクラスにするしかないね・・・
0982デフォルトの名無しさん
2009/11/18(水) 22:30:48unsafe キーワード
0983デフォルトの名無しさん
2009/11/18(水) 22:44:04一応隠しキーワードでこういうことができる
int x = 0;
TypedReference y = __makeref(x);
x = 100;
Console.WriteLine(__refvalue(y, int));
実際のコードで使ったら死刑ね
0984デフォルトの名無しさん
2009/11/18(水) 22:59:08何で使うと駄目なんですか?
0985デフォルトの名無しさん
2009/11/18(水) 23:02:49__系はP/Invokeで可変長引数を扱うためだけに用意されてる
ドキュメント化されてないってことはいつ消えても文句言えないってことだぞ
0986デフォルトの名無しさん
2009/11/18(水) 23:06:270987978
2009/11/18(水) 23:21:43難しそうなので、とりあえず諦めて別の方法探すことにします。
0988デフォルトの名無しさん
2009/11/18(水) 23:22:05でも、なかなか消えないんでしょう?
0989デフォルトの名無しさん
2009/11/18(水) 23:32:08消えないかもしれないし消えるかもしれない
あるときフレームワークをバージョンアップしたらソフトが動かなくなりました
とか5年後に言われてその時に簡単にソフトを治せるならどうぞ
なぜほかのみんなが推奨していないかの可能性を考えてみればどう?
その程度の動作の為だけにリスクがでかすぎる
職業でソフト組めばわかるよ
0990デフォルトの名無しさん
2009/11/18(水) 23:40:390991デフォルトの名無しさん
2009/11/18(水) 23:42:09亀レスで申し訳ないが、それだと
例えば最低値=5で最大値=7で除外値=6の場合、1/3の確率でrand.Nextを再度呼び出すことになるわけだが、
本当にそれでいいのか?
除外値が1つだけだったらそんなに問題にはならないと思うけど……
0992デフォルトの名無しさん
2009/11/18(水) 23:53:190993デフォルトの名無しさん
2009/11/18(水) 23:56:58http://pc12.2ch.net/test/read.cgi/tech/1258556187/
0994デフォルトの名無しさん
2009/11/19(木) 00:01:110995デフォルトの名無しさん
2009/11/19(木) 00:06:470996デフォルトの名無しさん
2009/11/19(木) 06:46:41それでいいんだよ
0997デフォルトの名無しさん
2009/11/19(木) 18:26:280998デフォルトの名無しさん
2009/11/19(木) 20:29:310999デフォルトの名無しさん
2009/11/19(木) 20:45:331000デフォルトの名無しさん
2009/11/19(木) 20:46:2610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。