ふらっとC#,C♯,C#(初心者用) Part47at TECH
ふらっとC#,C♯,C#(初心者用) Part47 - 暇つぶし2ch1:デフォルトの名無しさん
09/11/01 18:23:31
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part45 (実質46)
スレリンク(tech板)

2:デフォルトの名無しさん
09/11/01 18:24:07
-----関連スレ

C#, C♯, C#相談室 Part55
スレリンク(tech板)

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
スレリンク(tech板)

----参考サイト

URLリンク(www.google.co.jp)
URLリンク(msdn.microsoft.com)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)


3:デフォルトの名無しさん
09/11/01 21:24:18
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

4:デフォルトの名無しさん
09/11/01 21:44:47
よりによって、京都大学を騙るとは。
京都府警の管轄だぞ。

5:デフォルトの名無しさん
09/11/02 09:57:33
いや、アイちゃんはたしかに京都大学所属だ
URLリンク(www.pri.kyoto-u.ac.jp)

6:デフォルトの名無しさん
09/11/02 10:21:32
ワロタ

7:デフォルトの名無しさん
09/11/02 11:46:20
アイちゃんがまだ生きてることに正直驚いた


8:デフォルトの名無しさん
09/11/02 14:03:08
どんなに優れたプログラムを作ってもアイちゃんの脳には勝てない

9:デフォルトの名無しさん
09/11/02 20:56:50
マウス座標を固定したい場合、どうやってやればいいでしょうか?
Timer座標変更する以外で方法はありますか?

10:デフォルトの名無しさん
09/11/02 23:10:55
なぜわざわざ腐ったUIにしたいのさ

11:デフォルトの名無しさん
09/11/02 23:14:14
>>10
キチガイがわいたよ

12:デフォルトの名無しさん
09/11/03 00:04:14
LL でフックして、位置を変えなきゃOK。

13:デフォルトの名無しさん
09/11/03 00:13:13
それが一番スマートなやり方だな

14:デフォルトの名無しさん
09/11/03 02:36:15
ListViewのDetailsViewを使い、
3種類のカラムにデータを表示させています。
これで、1,2番目のカラムは起動時に取得するのですが、
3番目のカラムは、起動後ボタンを押したタイミングで表示するようにしたいのです。
ボタンを押したら、一度ListViewをClearして、3番目のカラムを含むデータを、
再度表示させることも出来るのですが、何番目のアイテムの3番目のカラムデータを、
更新する、ということは出来ませんか?


15:デフォルトの名無しさん
09/11/03 04:17:59
>>14
ListView.Items[n番目].SubItem[2].Text

16:デフォルトの名無しさん
09/11/03 11:00:20
XMLの名前空間なんですが
URLリンク(hogehoge.com)
URLリンク(hogehoge.com)
とか微妙に違う場合、DOMから名前空間を取得してXmlNamespaceManagerにaddするか
DOMから名前空間削除しちゃうか
って選択肢があるんですが、取得するメリットってなんでしょうか
特定の名前空間しか受付ないって仕様なら納得できますが
取得してaddするくらいなら削除した方がただしいような気がします
ご意見お願いします

17:デフォルトの名無しさん
09/11/03 11:31:04
>>15
ありがとうございます。解決しました。

18:デフォルトの名無しさん
09/11/03 11:45:19
>>16
名前空間が何で(どういう場面で)必要なのか考えれば自明。

19:デフォルトの名無しさん
09/11/03 14:06:25
>>18
xml要素がDOMの中で重合しない限り名前空間など無用ってことですね?

20:デフォルトの名無しさん
09/11/03 17:06:49
一部処理をしてる間だけ、画面にその結果を反映させたくなく、
処理が終わったら表示を更新する・・・のようなものはありませんか?
update..とかで何か出来た気がするのですが・・・

21:デフォルトの名無しさん
09/11/03 17:13:04
BeginUpdate() ~ EndUpdate() のこと?

22:デフォルトの名無しさん
09/11/03 18:28:28
>>21
それです!
やってみますね、ありがとうございました。

23:デフォルトの名無しさん
09/11/04 03:58:29
大分前だけど、プログラマとして会社面接に行って
C++、C#できますと言ったら、面接官(多分SE?)にC#って何?って言われたw

24:デフォルトの名無しさん
09/11/04 04:07:47
外部のコンポーネントを使用したいと思ってるんだけど著作権絡みの質問ってどこですればよい?

25:デフォルトの名無しさん
09/11/04 04:32:54
C#も知らんとは無知すぐる

26:デフォルトの名無しさん
09/11/04 04:55:32
そこの会社ではシーイゲタと呼んでとか

27:デフォルトの名無しさん
09/11/04 08:13:34
シープラプラプラプラ

28:デフォルトの名無しさん
09/11/04 08:34:23
C丼

29:デフォルトの名無しさん
09/11/04 10:37:42
>>23
その面接官をこのスレに連れてきなさい!

(やってきた)
仕事くださいお願いしますorz

30:デフォルトの名無しさん
09/11/04 11:32:59
>>23
どのくらい説明できるか試したんじゃない?

31:デフォルトの名無しさん
09/11/04 11:40:18
まあC#なんて最近だし

32:デフォルトの名無しさん
09/11/04 11:44:56
このスレを見てる俺もよく知らないし

33:デフォルトの名無しさん
09/11/04 11:45:41
俺もよく分かりません

34:デフォルトの名無しさん
09/11/04 12:29:17
そんなやつらに聞いてたのか

35:デフォルトの名無しさん
09/11/04 12:32:59
string に入ってる一文字がa-z 0-9 の半角小文字かどうかを判定する簡単な方法教えてください
なるべく正規表現使わない方法で

36:デフォルトの名無しさん
09/11/04 12:34:57
どう考えても正規表現が一番簡単だが
まあ36文字ぐらいならchar配列で持っておいてループでチェックしても良いんじゃね

37:デフォルトの名無しさん
09/11/04 12:42:08
1文字って文字列中の1文字?
まあChar.IsLowerとChar.IsNumber使うのかな

38:デフォルトの名無しさん
09/11/04 12:43:30
まあ性器表現は重いからな

39:デフォルトの名無しさん
09/11/04 12:48:18
>>37
全角とか色々引っかかるから不可よん

40:デフォルトの名無しさん
09/11/04 12:57:14
ありがとうございます

stringのままだと不等号が通らなかったので
char[] ch = al.ToCharArray();
if ((ch[0] < 'a' || ch[0] > 'z') || (ch[0] < '0' || ch[0] > '9'))
としてみました。
これではまずいでしょうか?

41:デフォルトの名無しさん
09/11/04 13:15:07
それだと合致しすぎだろ

42:デフォルトの名無しさん
09/11/04 13:25:03
あ こう?
if ((ch[0] < 'a' || ch[0] > 'z') && (ch[0] < '0' || ch[0] > '9'))

43:デフォルトの名無しさん
09/11/04 13:27:57
>>39
エンコーディング指定すれば問題ない

44:デフォルトの名無しさん
09/11/04 13:35:46
おちょくってるのか

45:デフォルトの名無しさん
09/11/04 13:39:35
that's right

46:デフォルトの名無しさん
09/11/04 13:51:04
プロセスが使用しているファイルのパスやファイルの起動時刻のデータを取得することは可能でしょうか?
Windowsでの実装を考えています
C#ではウィンドウを持つプロセスからタスクバーに表示される文字列を取得できることは調べてわかりました
しかし,これではファイルのパスやファイルの実行時刻,さらにはファイル名がタスクバーに表示されなければファイル名も取得することができません
Windowsのどこかにファイルの使用履歴を保存している情報があれば,そこから取得できるかなと思っているのですが・・・

47:デフォルトの名無しさん
09/11/04 13:59:29
if( (ch[i] >= 'a' && ch[i] <= 'z') || (ch[i] >= '0' && ch[i] <= '9') ){
  //string に入ってる一文字がa-z 0-9 の半角小文字
}


48:デフォルトの名無しさん
09/11/04 15:54:58
フィルタドラバ書けばなんとかなりそうだけどスレちがいですね

49:デフォルトの名無しさん
09/11/04 16:05:38
>>35
他には辞書型にマッチする文字を全部放り込んでしまうとかが考えられるけど、
まあ正規表現を使うのが一番簡単。
なぜそれを避ける必要があるのかが逆に分からんな。

50:デフォルトの名無しさん
09/11/04 17:34:30
宿題なんでしょ

51:デフォルトの名無しさん
09/11/04 17:46:38
だからエンコード指定してIsLowerとかIsNumberしろよと・・・

52:デフォルトの名無しさん
09/11/04 17:53:02
エストニア語環境でバグるんですね。わかります。

53:デフォルトの名無しさん
09/11/04 17:53:45
もし宿題なら、前に出てたif文の使い方とか教えたいんじゃなかろうか

54:デフォルトの名無しさん
09/11/04 18:04:21
>>51
全角の1とかaまでマッチするだろ。あほは黙ってなさい

55:デフォルトの名無しさん
09/11/04 18:05:25
>>51
.NETの標準ライブラリにはIsLowerとIsNumberはCharにしかなくて、
どっちもEncodingは引数に取らないんだが……
一体どういう操作なの?

56:デフォルトの名無しさん
09/11/04 18:21:49
Encoding設定できないのに全角の1を数値と判断してると思える方がどうかしてる

57:デフォルトの名無しさん
09/11/04 18:24:30
数値じゃなくて数字でしょ

58:35
09/11/04 18:24:52
役に立たねえやつらだな

59:デフォルトの名無しさん
09/11/04 18:26:42
じゃあ>>51は2重にまちがってんじゃんw

60:デフォルトの名無しさん
09/11/04 21:00:29
これでOK。
ASCIIコード相当の文字セットはユニコード内で同じ値がマッピングされてるから
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.");

61:デフォルトの名無しさん
09/11/05 03:21:07
後出しなのにすげー間抜けなの出てきたw

62:デフォルトの名無しさん
09/11/05 03:39:46
間抜けとは何だ
プンプン

63:デフォルトの名無しさん
09/11/05 04:34:12
c#の参照型とC言語のポインタ型って同じだと思うんだけど
何か違うのか?

c言語
int x=30;
int*p;
p=&x;//pには、1923536みたいな数値が入ってる
で、アドレス1923536に30という数値が入る。

d#
TestClass tc = new TestClass();
tc.x=30;

tcには1923536みたいな数値が入ってる
で、アドレス1923536に30が格納されるんだろ?

何か間違ってる?

64:デフォルトの名無しさん
09/11/05 04:41:23
>>60
だからアクサンやセディーユやウムラウトはどうなる。

65:デフォルトの名無しさん
09/11/05 04:45:44
>>63
C#の参照はオブジェクトのアドレスを直接指していない(オブジェクトはいつ移動するかわからないから)。
値を自由に変更できない(現存するオブジェクトを指すかnullかしかなく、適当なアドレスを指したりできない)。
キャストが自由にできない(Cのポインタのように全く関係ない型に変換できない)。


66:デフォルトの名無しさん
09/11/05 05:29:25
なるほどなるほど
unsafe使ってもメモリ管理面ではc言語より弱いのか。
無理やり型キャストしてデータ書き換えするとコンピューターが内部でどんな動きをしてるか実際にチェックできて楽しかったのに残念だのぉ。

67:デフォルトの名無しさん
09/11/05 05:47:40
あ、unsafeのことは言ってないか。
unsafe使えば他のアプリケーションに干渉することが可能かね。

68:デフォルトの名無しさん
09/11/05 05:49:59
他のアプリケーションに干渉って具体的に何言ってんの

69:デフォルトの名無しさん
09/11/05 06:03:07
Windowsゲームのメモリを直接書き換えて改造するとか
コマンドプロンプトの文字をA⇒Cにしたりとか
そういううやつ。

アセンブリ?で無理やりアドレス書き換えたらできるようなやつ。

70:デフォルトの名無しさん
09/11/05 06:17:23
Cでやれよ

71:デフォルトの名無しさん
09/11/05 06:31:52
お、できた。
unsafe使ったら
他のプログラムに干渉できた!


unsafe private void Form1_Load(object sender, EventArgs e)
{
try
{
int* p;
p = (int*)12345678;
this.Text = ((int)*p).ToString();
}
catch
{
MessageBox.Show("他のプログラムが使用中です");
}
}

ここでテキストボックスとかに入力したアドレスに直接干渉できる
うまく使えばメモリマスターになれるなC#すごいな

72:デフォルトの名無しさん
09/11/05 06:58:06
メモリマスターが誕生した瞬間である。

73:デフォルトの名無しさん
09/11/05 07:03:40
ワロタ

74:デフォルトの名無しさん
09/11/05 07:14:31
すげー。





















仮想メモリについて勉強しような。









75:デフォルトの名無しさん
09/11/05 07:20:45
>>71
それ他のプログラムのメモリを指してないと思うけど

76:デフォルトの名無しさん
09/11/05 07:24:58
これからもどんどん干渉してくださいね

77:デフォルトの名無しさん
09/11/05 09:16:03
まさにMVPにふさわしい実力の持ち主がここに!!

78:デフォルトの名無しさん
09/11/05 09:27:11
まぁ本気じゃないだろ
だよな?

79:デフォルトの名無しさん
09/11/05 09:34:35
Win32sで.NETを動かすツワモノが

80:デフォルトの名無しさん
09/11/05 09:38:03
>>79
sの意味を詳しく

81:デフォルトの名無しさん
09/11/05 09:39:56
サブセットのs

82:デフォルトの名無しさん
09/11/05 10:38:32
なぜつわものなのだろうか・・・・

83:デフォルトの名無しさん
09/11/05 10:51:56
文字列に@が付いてるソースがありますがこれは何でしょうか?
@"hoge"
とかいうやつです。

84:デフォルトの名無しさん
09/11/05 10:53:34
古い奴だけど・・・
URLリンク(msdn.microsoft.com)(VS.71).aspx


85:デフォルトの名無しさん
09/11/05 10:57:12
>>84
ありがとうございます。なんとなくわかりました。
自分的には@は使わなくてよさそうです。

86:デフォルトの名無しさん
09/11/05 11:08:07
GCでぶっ飛べば。

87:デフォルトの名無しさん
09/11/05 13:24:41
"c:\\windows\\system32"とか書くときは
@"c:\windows\system32"ってするだろ

88:デフォルトの名無しさん
09/11/05 13:29:59
正規表現書くときも使うしな

89:デフォルトの名無しさん
09/11/05 13:33:26
普段使わないけど正規表現はねぇ…

90:デフォルトの名無しさん
09/11/05 13:40:37
なるほど

91:デフォルトの名無しさん
09/11/05 14:01:40
正規表現を@なしとか読みにくすぎて泣ける

92:デフォルトの名無しさん
09/11/05 14:10:55
自分のXPでは、エラーが出ないのですが、
VistaのPCで何故かWebClientの例外が発生します。
自分でVistaの開発環境を持てばいいのですがそれが出来ず困ってます。

93:デフォルトの名無しさん
09/11/05 14:15:29
どんなエラーかをとりあえず出すべきじゃないか?

94:デフォルトの名無しさん
09/11/05 14:30:47
>>58はおれじゃないです・・・荒れてしまってすいません
>>42でとりあえず実装してますがまずいですかね?


95:デフォルトの名無しさん
09/11/05 14:34:08
>>94
・・・なんでもいいけどテストちゃんとしろよな

96:デフォルトの名無しさん
09/11/05 14:52:35
{0:yyyy/MM/dd dddd hh/mm/ss ffff}, DateTime.Now

97:デフォルトの名無しさん
09/11/05 14:54:06
あー・・・やはりそうですよね;
e.Massageで取得した文は
WebClient要求がで例外が発生しました。
こうなんですが、
具体的な内容では無いので、どうするべきか迷ってました。

98:デフォルトの名無しさん
09/11/05 15:03:02
WebClientの何の処理でエラーなんだ?

99:デフォルトの名無しさん
09/11/05 15:04:09
メソッド、パラメータくらいかけよ

100:デフォルトの名無しさん
09/11/05 15:09:38
ひとまず例外のスタックトレースコピペるとかさ
なんで自分で書いちゃうんだよwwww


101:デフォルトの名無しさん
09/11/05 15:16:01
>>98
それが特定できないんです、
エラー構文にその処理位置を特定するようにしてませんでしたので;
>>99
Webclient.DownloadFileAsync(downUri, fileName)で開始し、
イベントハンドラDownloadFileCompletedで、e.Error != nullのとき、
WebClient例外が発生します。これだけでは特定できませんか?


102:デフォルトの名無しさん
09/11/05 15:19:18
書き込みできないフォルダにダウンロードしようとしてるんじゃね?
program filesの下とかさ

103:デフォルトの名無しさん
09/11/05 15:19:30
わかるかぼけ

104:デフォルトの名無しさん
09/11/05 15:22:15
だからメッセージだけじゃなくて例外の種類とかスタックトレースとかステータスコードとか
いっぱい情報があるだろうが。
その辺を全部出せ。

105:デフォルトの名無しさん
09/11/05 15:23:55
>>102はありそうだな。

106:デフォルトの名無しさん
09/11/05 15:29:50
正しいアクセス権がなかったらエラーになってたような気がしたが?

107:デフォルトの名無しさん
09/11/05 15:32:25
とにかく自分でファイルを書くときはマイドキュメントに作らないと

108:デフォルトの名無しさん
09/11/05 16:00:21
いやそれはどうか

109:デフォルトの名無しさん
09/11/05 16:13:46
VISTAでUAC切って同じことやらせてみてはどうか
恐らく制限に引っ掛かってるんじゃね?

110:デフォルトの名無しさん
09/11/05 16:23:13
WebBrowserコントロールで使用するプロキシサーバーの設定ってデフォルトだとIEと同じ設定になるんだけど
これを自分で設定することって出来ないかな?
WebClientとかHttpWebRequestだとProxyプロパティがあって設定出来るんだけどいくら探してもそれっぽいのが見つからない

111:デフォルトの名無しさん
09/11/05 16:36:45
c#ってすごいな。フォームを半透明にできるのか。
かわいい幽霊の画像を用意して
ゆっくりと透明度を上げ下げすれば、簡単にうらめし屋のできあがりだな。

112:デフォルトの名無しさん
09/11/05 16:39:59
C#ってかWindowsの機能でしょw

113:デフォルトの名無しさん
09/11/05 16:44:17
>>104
利用者向けのメッセージだったので、Error.Messageしか表示させてませんでした。
Vistaの方に協力してもらいやってますので、それから質問するべきでしたね。
>>102
SystemDriveでルート取得して、その直下にファイルをDLしているのですが、
VistaだとSystemDrive取得出来なかったりします?

114:デフォルトの名無しさん
09/11/05 16:45:18
>>110
自己レス
WinInetのInternetSetOption()で出来る気がしてきたからちょっとやってみるわ

115:デフォルトの名無しさん
09/11/05 16:49:13
>>113
Vistaでシステムドライブ直下は書き込めないよ
Vistaのセキュリティは万全なのだ

116:デフォルトの名無しさん
09/11/05 17:25:37
どうやら、UACが原因のようです。
UACを無効にすると、普通に起動することが出来ました。
>>115どうやらそのようですね・・・
ユーザに気づかれないようにファイルをDLしてきて、処理をしたかったのですが、
となると、皆さんならどこに保存しますか?

117:デフォルトの名無しさん
09/11/05 17:29:34
>>116
ログインユーザーのデスクトップとかマイドキュメントとか


118:デフォルトの名無しさん
09/11/05 17:32:42
>>117
そうですよね、マイドキュメントでやってみようと思います。
ありがとうございました。

119:デフォルトの名無しさん
09/11/05 17:39:45
UACを無効にすることがいかに怖いかわかるな

120:デフォルトの名無しさん
09/11/05 17:44:10
VISTあの場合は使う側としては異常にうっとおしいけどな・・・


121:デフォルトの名無しさん
09/11/05 17:48:49
うざいよりウィルスにかかってもいい人
UAC無効

普段の面倒さよりウィルスのほうがやな人
UAC有効

122:デフォルトの名無しさん
09/11/05 17:52:19
>>114
自己解決しました

123:デフォルトの名無しさん
09/11/05 18:34:17
>>116
いやまて、ファイルをユーザーに見せたくないんなら
Temp とかある程度永続が必要なら Local AppData
あたりじゃないのか

124:デフォルトの名無しさん
09/11/05 19:42:15
>>94
まずいっていうか明らかにおかしいじゃん。もう正解でてるよ

125:デフォルトの名無しさん
09/11/05 19:54:49
intとかstring型ってSystemに入ってるみたいだが
using System;
を入れなくてもintやstringを使用できるのはなぜ?

126:デフォルトの名無しさん
09/11/05 20:21:30
>>125
System.Stringの別名がstring
System.Int32の別名がint

※規制解除かな・・・テスト兼

127:デフォルトの名無しさん
09/11/05 22:03:44
>>124
うーむ・・・>>60ですか?

128:デフォルトの名無しさん
09/11/05 22:11:36
accessの熟練者から、
C#なんてなくてもaccess2007で十分じゃん。ランタイムも無料になったし。
と言われました。
なんか腹が立ちます。
C#の優位点を教えてください。
今、C#を猛烈に勉強しているので悔しいんです。
よろしくお願いいたします。

129:デフォルトの名無しさん
09/11/05 22:14:26
C#使えるようになってからにしような

130:デフォルトの名無しさん
09/11/05 22:14:31
Accessって何?ああ、Officeのオマケか。まだ出てたの?

131:デフォルトの名無しさん
09/11/05 22:17:37
較べるようなもんじゃねーよ
Accessで十分な用途ならそりゃAccessでやった方が楽だ
AccessでPythonの処理系作れるか?

132:デフォルトの名無しさん
09/11/05 22:19:20
プログラマーとかじゃなくて普通の仕事なら
accessの方が役に立つだろうから
その人が正しいといえなくもない

133:デフォルトの名無しさん
09/11/05 22:22:15
accessって2Gの壁とかいろいろ制限あったんじゃね?
あと同時に複数で使うと論理破壊が起るでしょ?

134:デフォルトの名無しさん
09/11/05 22:23:42
AccessとC#は立ち位置が違うよな・・・
JavaとC#とかならまだ議論しようがあるけど。


135:デフォルトの名無しさん
09/11/05 22:24:25
Accessあるのに職場内で使うようなデータベースソフト作るのに
C#とSQLServerとか使ってたら「ば~かぁ」って言われるだろうけど
それ以外使い道ないじゃんAccess

136:デフォルトの名無しさん
09/11/05 22:24:34
その情報はあまりにも古い

137:デフォルトの名無しさん
09/11/05 22:27:53
それに比べたらゲームから書類まで作れちゃうExcelの万能さは異常

138:デフォルトの名無しさん
09/11/05 22:28:32
結局VBAだらけになって、全部プログラムで作っちゃったほうが楽だったんじゃね?となる

139:デフォルトの名無しさん
09/11/05 22:30:05
VBAは使えるけどワークシート関数とか全くわからん

140:デフォルトの名無しさん
09/11/05 22:33:54
ExcelはVBA使ったら負け

141:デフォルトの名無しさん
09/11/05 22:58:34
ExcelはVBA言語によるリッチクライアントプラットフォーム

142:デフォルトの名無しさん
09/11/05 22:59:10
農作業車とセダン比べてどうとか言ってる感じがする

143:デフォルトの名無しさん
09/11/05 23:52:01
で、Accessに勝っている点って何?
劣っている点は心当たりあるけど。
…AccessはDBそのもので作業が楽。
同じものを作成するといってもC#の方が8倍くらいの時間がかかると思う。


144:デフォルトの名無しさん
09/11/05 23:53:11
Accessって共同作業できる?

145:デフォルトの名無しさん
09/11/05 23:53:14
accessでasp作れるの?

146:デフォルトの名無しさん
09/11/05 23:55:28
WMPlibでWMPのUIをそのまま貼り付けて、
mp3の再生を行っています。
このとき、繰り返し再生機能を実装したいのですが、
どのように書けば良いのでしょうか?

また、WMPのUI上で停止ボタンが押された場合のイベントは有りませんよね。。


147:デフォルトの名無しさん
09/11/05 23:56:00
Windowsフォームアプリケーションを作るという前提ならば、
Accessに負ける?

148:デフォルトの名無しさん
09/11/05 23:57:24
>>147
負ける。
ただ、Accessのフォームはどうも見た目が安っぽいんだよね。

149:デフォルトの名無しさん
09/11/05 23:58:16
>>147
負けねーよ。馬鹿。
表入力は劣るけど。

150:デフォルトの名無しさん
09/11/06 00:02:17
AccessはC#で作れるからC#の勝ち

151:デフォルトの名無しさん
09/11/06 00:06:46
>>146
Settings あたりにあるだろ確か
イベントは MouseDown とかそんなのなかったか?
俺は C++ で COM 直でしかいじったことないからあいまい
だけど

152:デフォルトの名無しさん
09/11/06 00:08:31
accessの方が有利点が多い?

153:デフォルトの名無しさん
09/11/06 00:11:53
Accessの優位点ってプログラムレスでお手軽にDBアプリができる点かね。
それを言うならもうとっくにお亡くなりになったロータスのAproachは
もっとお手軽だった気もしたけど。

154:デフォルトの名無しさん
09/11/06 00:15:44
Accessはなんとなく適当に作ってもなんとなく動いちゃうんだよな
それはそれで楽っちゃ楽なんだけれど、きっちり作り込もうとすると融通が利かなかったり
VBAであれこれ書かなきゃいけなかったりするのよねぇ


155:デフォルトの名無しさん
09/11/06 00:16:20
荒しだろ。しつけぇ

156:デフォルトの名無しさん
09/11/06 00:33:06
だがAccessの領域はSalesforceにとってかわりつつある

157:デフォルトの名無しさん
09/11/06 00:35:52
throw new ArashiException();

try{
通常書き込み
}

catch(ArashiException){
むし
}

158:デフォルトの名無しさん
09/11/06 01:00:54
>>156
salesforce は表で編集するの苦手だからなぁ
1レコードづつフォーム開いて編集するの限定なら代わりになるが・・・

159:デフォルトの名無しさん
09/11/06 01:37:52
何を作るのに十分なんだろうな・・・
マルチスレッドも使えないし


160:デフォルトの名無しさん
09/11/06 02:18:18
内部的にどういう動きしてるかしらないけどフォームやボタンのMouseClickイベントとかって

while(true){
if (マウスがクリックされてる){
なんかする
}
0.0001秒待機する
}

みたいな処理をやってるの?
裏では大量のwhile分がマウスやキーボードのチェックを行ってるの?

161:デフォルトの名無しさん
09/11/06 02:37:27
うん

162:デフォルトの名無しさん
09/11/06 04:38:56
("{0:hh:mm:ss.ffff}",DateTime.Now)
hはhour、mはminute、sはsecondをあらわすのはいいとして
ミリ秒をあらわすfって何の略よ?

163:デフォルトの名無しさん
09/11/06 04:49:20
few

164:デフォルトの名無しさん
09/11/06 07:44:18
fractionだろ
ミリ秒ではなく秒の端数

165:デフォルトの名無しさん
09/11/06 16:06:23
.net Framework Compactには画像を回転させる関数がないので
URLリンク(homepage2.nifty.com)
のサンプルをC#で動かすためにいじってみましたが

最後のサンプルで計算領域がはずれてしまい、画像が大きくゆがむ現象で困ってます
アルゴリズムのどこかがコンパイルは通るもののCとC#の言語仕様で
うまくいかないようです

ちなみに最初に出てくるサンプルはちょっと変更を加えると動きました
高速化ってのを試したいんですが・・・


166:デフォルトの名無しさん
09/11/06 21:40:41
わかるわけないだろ
うまくいかないコードを晒せ

167:デフォルトの名無しさん
09/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);

//URLリンク(homepage2.nifty.com)
// 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ループ内の増分



168:デフォルトの名無しさん
09/11/06 22:06:50
//SIN,COS値を整数に変換
int_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;


169:デフォルトの名無しさん
09/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;
}

170:rrr
09/11/06 23:25:53
rrr

171:デフォルトの名無しさん
09/11/07 00:29:27
あまり関係ないと思われるが
× StX = int_cos * (-DstCX) - int_sin * (-DstCY) + (SrcCY << 10);
○ StX = int_cos * (-DstCX) - int_sin * (-DstCY) + (SrcCX << 10);


172:デフォルトの名無しさん
09/11/07 00:38:58
いや、「画像が大きくゆがむ現象」はともかく、「計算領域がはずれてしまい」は
こいつが原因くさいか。

173:デフォルトの名無しさん
09/11/07 09:43:17
ありがとうございます
変更してテストしてみました
やはり現象はほぼ同じです

180度回転はうまくいきます
90度回転は (x1 >= 0 && x1 < SrcWidth && y1 >= 0 && y1 < SrcHeight)の領域に入ってこないので
描画されません
中間の角度で描画されない部分とゆがむ部分がでてきます
ピクセルの位置の増分を決定している変数

x1_mult
y1_mult

が適切でないっぽいですね
しかし理屈が理解できてないのでどこが間違いかわかりません

174:デフォルトの名無しさん
09/11/07 11:54:32
訂正しても現象がほぼ同じなことの原因

最初から回転を考えててコピー元、コピー先ともに正方形にしてたからです
たまたまですね

175:デフォルトの名無しさん
09/11/07 12:15:03
C#とかの仕様の問題じゃなく、単にアルゴリズムの間違いだと思う。
ネタ元ページの走査開始点の式に出力画像の幅高さが出てこないのが変。
アイデアとしては、図の通り斜めにコピーするのは納得できる。
でも、コピー先の領域(出力画像の幅高さ)を適用しないと、コピー元での走査
開始点座標が求まるはずが無い。
幾何学的意味は、回転中心を元先で合わせて、先領域を回転させて先領域の
(0,0)が該当する位置を、元領域での走査開始点とするから。
よって、式が疑わしい。

回転の中心と画像の中心をごっちゃにして間違ってるんじゃないかなコレ?
書かれているように画像の中心なら幅高さとは別に用意されてる意味がない。

176:デフォルトの名無しさん
09/11/07 12:31:00
>>175
そうなんですか

じゃー動くやつであとはLockBitsして高速化してみます

177:softbank221086123053.bbtec.net
09/11/07 13:47:07
たとえば、string変数の
abc[def]ghi があるとして、
[と]の間にある文字列を取得する場合はどのように書けばいいのでしょう


178:デフォルトの名無しさん
09/11/07 13:49:58
いや、回転中心も原点からの座標値だから正しい。175は勘違い。

179:デフォルトの名無しさん
09/11/07 13:52:18
>>177
String#Substring メソッド

180:デフォルトの名無しさん
09/11/07 13:56:21
>>177
Regex

181:デフォルトの名無しさん
09/11/07 14:18:07
>>142
セダンの運転手を雇ってる人が一番エライ
Access使いだろうがC#使いだろうがただのしもべ

182:デフォルトの名無しさん
09/11/07 14:26:56
はいw

183:デフォルトの名無しさん
09/11/07 14:36:22
>>173
× 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));

で動いた。

184:中学生
09/11/07 14:36:42
じゃあセダンの運転手を雇っててACCESSとC#の使える俺が一番偉いんかったんや!!

185:デフォルトの名無しさん
09/11/07 15:02:55
もっと面白い事言えんのかね

186:デフォルトの名無しさん
09/11/07 15:05:06
名前欄に中学生とか書いちゃうような人に期待するだけ無駄

187:デフォルトの名無しさん
09/11/07 15:30:03
>>183
うおおお 神! ばっちりでした!

188:デフォルトの名無しさん
09/11/07 15:49:36
ちなみに>>171の変更は必要ですか?


189:デフォルトの名無しさん
09/11/07 16:21:54
>>183
1つ目必要ないし

190:デフォルトの名無しさん
09/11/07 16:45:42
>>188
必要。

>>189
ああっっ、いらんわ確かに。

191:デフォルトの名無しさん
09/11/07 17:15:24
AxWindowsMediaPlayerを使い音楽ツールを作っているのですが、
プレイリストを作り順再生/ランダム再生を行おうと思い、
AxWMP.currentPlaylist.appendItem(newsong);
こうすれば追加は可能ですが、
何番目の曲をプレイリストから削除することや、
現在プレイリストに入ってる曲をリストボックスに表示する方法が分かりません。
プレイリストを配列で取得・・・できるようなメソッドはありませんよねぇ・・・

192:デフォルトの名無しさん
09/11/07 17:27:17
SDK見ただけだけど
IWMPPlaylist.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.
とかあるけど、駄目なのか?

193:デフォルトの名無しさん
09/11/07 20:48:35
>>189
ありがとうございます
>>190
了解です ありがとうございました

194:デフォルトの名無しさん
09/11/07 20:48:51
Graphics

195:デフォルトの名無しさん
09/11/07 20:50:44
お、やっと解除された。
>>173
モバイル環境で開発してるみたいだけど、PixtureBoxもGraphicsも使えるんだろ?
そしたら拡大だろうが回転だろうがその範囲で自由にできると思うんだけど。
なぜそれくらいでゴリゴリベタなバイナリを触ろうとするのかがよく分からないな。

196:デフォルトの名無しさん
09/11/07 21:22:53
CompactFrameworkには回転もアフィン変換も無いんだよ

197:デフォルトの名無しさん
09/11/07 22:18:40
RectangleFとかPointFとかfloat座標使えないし、コンストラクタのオーバーロードも
軒並みアウトで作ってからシコシコとプロパティ設定とかだしな。
まあしかし、手作り感がたまらないという。なんというかマゾヒズム?

198:デフォルトの名無しさん
09/11/07 22:43:07
VisualStudioのc#で実行したら
binのDebutにexeができて
ビルドを選んだらReleaseにexeができるけど

ビルドで作られたexeとDebugのexeはなんか違いあるの?

199:デフォルトの名無しさん
09/11/07 22:49:54
それは自分で設定する。最適化の有無とかDEBUG定数の定義とか。

200:デフォルトの名無しさん
09/11/07 23:03:37
まあC#の場合は大した違いはない

201:デフォルトの名無しさん
09/11/08 06:31:04
191です
AxWMPのプレイリスト機能を使うのではなく、
配列でプレイリストのかわりにURIを持ち、
PlayStateChangeイベントハンドラで
再生終了後、配列から次のURIを読むようにしているのですが、
axwmp.Ctlcontrols.stop();
axwmp.URL = SongsPlaylist[i].ToString();
axwmp.Ctlcontrols.play();
この最後のplayメソッドが働らいていないようです。
これはどうすれば良いでしょうか?

202:デフォルトの名無しさん
09/11/08 09:07:22
BeginInvokeでplayの呼び出しを遅延させる

203:デフォルトの名無しさん
09/11/08 13:02:12
>>202
ありがとうございます。
URIが送られてPlayStateChangeイベントが発生したからのようですね。
初歩的なことでした;ありがとうございました。

204:デフォルトの名無しさん
09/11/08 14:49:35
VB、C#とやってるんですが、
次手を出すなら何が良いと思いますか?

205:デフォルトの名無しさん
09/11/08 14:54:52
他の言語に手を出す前に、VB と C# を究めたら?

206:デフォルトの名無しさん
09/11/08 14:55:24
何がやりたいかによるんじゃ?
.NETつながりでIronPython、、つまりPythonとかどうよ

207:デフォルトの名無しさん
09/11/08 14:55:35
>>204
プログラミング言語はプログラムを作る道具であって、
それに手を出すこと自体に意味があるわけではないよ。

とはいえ異なるプログラミング言語に触れることで思考の引き出しは増えていくので、
暇があるときに他の言語を試してみるというのも悪い話ではない。

208:デフォルトの名無しさん
09/11/08 15:02:31
繋がり重視ならIronPython。
引き出しを増やすならHaskellを勧める。

209:デフォルトの名無しさん
09/11/08 15:11:46
色々触るのもいいけど、ひとつを極めるのも面白いと思う

210:デフォルトの名無しさん
09/11/08 15:49:13
.NET Compact Frameworkネタでもうひとつお願いします
キーロックと画面を横にしたりするのを実装したいんですが
どうしたらいいんでしょうか?
さっきから探してるんですがヒントさえ見つかりません

211:デフォルトの名無しさん
09/11/08 15:55:48
言語なんてどうせ手段なんだし極めるもなにもないような・・・
オブジェクト指向を極めたぞ!とかならまだしも。

212:デフォルトの名無しさん
09/11/08 16:08:07
だよな
いかに優れたアプリケーションを作るかの方が大事だよ

213:デフォルトの名無しさん
09/11/08 16:14:38
C#極めたってのがどのレベルを指すのかはわからんけど(言語仕様の把握??)
.NETを極めたぞ、とかならそれなりに意味があると思う。
それだけでも仕事取れるんじゃない?


214:デフォルトの名無しさん
09/11/08 16:15:18
いやいや、例えば車にだって低回転時のトルクがどうとかステアリングがどうとか
車種によって特性があるじゃないか。

車なんてどうせ手段だし極めるもなにもないような・・・
運転を極めたぞ!とかならまだしも。

と、特定車のスレで言い放っているのと同じだぜ、それ。

215:デフォルトの名無しさん
09/11/08 16:15:26
自分で言ってておかしいと思わないのかな
手段を極めることとは、すなわち生産性を高めることだろ

216:デフォルトの名無しさん
09/11/08 16:16:05
>>211
>オブジェクト指向を極めたぞ!
すごく胡散臭さを感じるw

217:デフォルトの名無しさん
09/11/08 16:19:44
極めるなんて言う程奥深いか?
生産性高めるのって言語に対する習熟より他の部分に依る部分の方が大きくない?


218:デフォルトの名無しさん
09/11/08 16:21:01
極めるとか高校生が言いそうですね

219:デフォルトの名無しさん
09/11/08 16:21:34
>>217
よくわかってないなら黙ってろカス
お前がC#の深さを全然知らんだけだろ

220:デフォルトの名無しさん
09/11/08 16:24:40
C#の深さwwww

マジレスすると、VB、C# ってきたらあとはPython、Perl、Rubyあたりのスクリプト言語に慣れとくと
色々便利じゃないかね。

221:デフォルトの名無しさん
09/11/08 16:25:46
言語を究めたって言われてもいまいちイメージできない
その言語つかって思い通りのソフト作れるってこと?

222:デフォルトの名無しさん
09/11/08 16:31:54
だとしたらだいぶ浅いな。

223:デフォルトの名無しさん
09/11/08 16:35:51
エスパーレスが出来ることだろ

224:デフォルトの名無しさん
09/11/08 16:43:11
自分で処理系作れたらおk

225:デフォルトの名無しさん
09/11/08 16:55:32
極めたっつったら、その言語のコンパイラーを自作しちゃうくらいの勢いだな

226:デフォルトの名無しさん
09/11/08 17:00:08
言語極めててもその言語のコンパイラは作れないだろ。
もっと別種の知識が必要で、それさえあればあとはその言語の仕様書さえあれば
極めてなくても作れると思うぞ。



227:デフォルトの名無しさん
09/11/08 17:19:49
ネタだろw

228:デフォルトの名無しさん
09/11/08 17:20:48
C# を極めてもねぇ…。
極めるってほどじゃないと思う。

言語を極めてもクラスライブラリを使いこなせなけりゃ意味ないんだから
.NET の CLR と クラスライブラリを極めないと…。

229:デフォルトの名無しさん
09/11/08 17:23:43
コアとあなたは、クラスメイト♪

230:デフォルトの名無しさん
09/11/08 17:26:56
CLRの理解を深めるといい。


231:デフォルトの名無しさん
09/11/08 17:47:24
Form_Load後、300ミリ秒程度間を開けて処理をしたいのですが、
それだけのためにtimerを利用するのもどうかと思いますし、
同じスレッドで他の処理はしたいので、Threading.Thread.Sleepは使えません。
こんな時に使えるモノはないでしょうか?

232:デフォルトの名無しさん
09/11/08 17:48:10
C#極めましたっていったらまあ.NET極めましたって意味に取っちゃうかな


233:デフォルトの名無しさん
09/11/08 17:50:43
>>231
Timerでいいよ

234:デフォルトの名無しさん
09/11/08 17:51:58
よっぽどヒマならアセンブラ辺りやっとけば。
その上でネイティブの C をちゃんと覚えれば無敵状態になれるかもよ。

235:デフォルトの名無しさん
09/11/08 17:57:07
ネイティブのCって開発環境無いよね

236:デフォルトの名無しさん
09/11/08 18:00:56
いくらでもあるだろ。

237:デフォルトの名無しさん
09/11/08 18:06:31
>>231
用途に合うかどうかは知らないが、
フォームの表示が済んだらすぐ程度でよかったらShownイベントでいいんでない?

238:デフォルトの名無しさん
09/11/08 18:24:00
プロパティの get 内でウェブアクセスして情報取得をしたいのですが、問題ありますでしょうか?
それともメソッドにすべき?

239:デフォルトの名無しさん
09/11/08 18:44:04
>>237
それは試してましたが、
Loadから呼ばれる関数内から300ミリ待たせたかったので、
Shownだと早すぎてアウトみたいです。
とりあえず暫定的にタイマー使っておこうかと思います。

240:デフォルトの名無しさん
09/11/08 19:45:54
>>238
さすがにそれは絶対ダメ
メソッドどころか専用のクラス作ってもいいくらいだ

241:デフォルトの名無しさん
09/11/08 20:31:19
>>240
だめですか・・・
大人しく SetXX と IsXX を作ります。

ガイドライン見てみるとたしかに書いてありますね。
URLリンク(msdn.microsoft.com) より
>以下の場合は、プロパティではなくメソッドを使用してください。
> 操作がフィールド セットの場合よりも格段に低速の場合。
> スレッドのブロックを避けるために非同期バージョンの操作を提供することも検討している場合は、
> プロパティでは操作の負荷が大きくなりすぎる可能性があります。
> 特に、初期化時以外にもネットワークやファイル システムにアクセスする操作は、
> 多くの場合、プロパティではなく、メソッドにする必要があります。

多くの場合って書いてあるけど、例外的にOKな場合もあるんだろか・・・

242:デフォルトの名無しさん
09/11/08 20:38:40
バインディングやリフレクションの都合でどうしてもプロパティにしたい場合はあるだろうな

243:デフォルトの名無しさん
09/11/08 20:49:39
じゃあ、form上の複数のコントロールのenable値を変えたい時にプロパティで設定するのはおk?

244:デフォルトの名無しさん
09/11/08 21:27:07
>>243
論理値でだとすると微妙。
一度にfalse/trueにする機能ならメソッド推奨。
複数コントロールのenable値の組み合わせは論理値じゃ返せないだろうし、
そしてget無しのset専用プロパティはガイドライン違反だから。
※ 無理矢理にでも返すとか言い出すなら「ご勝手に」かな。

245:デフォルトの名無しさん
09/11/08 22:22:27
副作用起こすプロパティ作って、うまいことやった気になるのは初心者によくあること
HogeControl.Enadled = true; これで他のコントロールが無効になったり
ネットワーク通信始めるようになったら、次にソース見たときに
それが本当に何をやっているのか中まで全部見ないと理解できないものになる
小さいプログラムのうちはなんとかなるが、大きくなるにつれて
たまねぎの皮を剥くような精神力の戦いに引きずり込まれることになる

246:デフォルトの名無しさん
09/11/08 22:28:51
>>245
どういう意味で「副作用」と言っているのか不明瞭な気がするが、
それは抽象化と命名が適切かどうかという問題であって、
「それ」がプロパティかメソッドか、という問題ではないと思うが。

247:デフォルトの名無しさん
09/11/08 22:50:25
メソッドは操作、プロパティはデータを表すのが一般的だとガイドラインに明記
されているし、俺もそう思う。
抽象化と命名の問題かもしれないが、区別して使うに越したことはない。

248:243
09/11/08 22:51:48
>>244
一括ではない。
組み合わせをcase式で処理してる。
さらにいえば、それは親フォームにある共通のコントロール。
getsetで渡す値はenumな値で表示モードです。
子フォームからgetsetして共通コントロールの制御を親のプロパティで行い、子は自formのコントロールの制御をおこなう。
状態としてコントロールの管理をしたかったんた゛。

249:デフォルトの名無しさん
09/11/08 23:09:08
>>248
それは別にいいんじゃないの?


250:デフォルトの名無しさん
09/11/08 23:10:25
それはイベント使った方がいい気がする
せっかく親フォームを抽象化しようとしているみたいなのにもったいない

251:デフォルトの名無しさん
09/11/08 23:38:54
XmlSerializerでメンバをシリアライズ/デシリアライズする際、
独自の日付方式で書かれた文字列をDateTimeに変換したい場合に
属性のみの記述で変換することは不可能でしょうか?
それとも大人しくラッパークラスを作るしかないんでしょうか?

・日付文字列(W3Cで定義された形式とは違う)
Sat Jan 24 22:14:29 +0000 2009

・メンバ
[System.Xml.Serializer.XmlElement("date")]
public DateTime Date {get; set;}





252:デフォルトの名無しさん
09/11/09 00:01:57
>>251
言ってることが支離滅裂に聞こえる。
独自の日付方式で書かれた文字列って何?

>public DateTime Date {get; set;}
このプロパティの型はDateTimeであって文字列ではないと思うけど。


253:デフォルトの名無しさん
09/11/09 00:05:29
>>252
カスは黙ってろ

254:ISO 8601
09/11/09 00:09:55
まあ、アメちゃんに国際規格とか言っても、北米が全世界で他は異世界と思ってるしな。

255:デフォルトの名無しさん
09/11/09 00:29:33
DateTimeは構造体ダス

256:251
09/11/09 00:30:22
>>252
XML上の「文字列」をDateTime型のプロパティにデシアライズしたい、というわけです。
その際、W3Cで定義された形式の日付文字列は特になにもしなくてもDateTime型に相互変換出来るんですが、
>>251 で挙げてるようなW3C標準じゃない形式の場合は変換してくれないんですよ。

で、属性にフォーマット指定したり変換用のデリゲートとかクラス指定したりして
シンプルに書く方法はないのかなぁと・・・

>>254
REST API実装してるアプリが返す日付形式って結構ばらばらな上適当ですよねぇ。

257:デフォルトの名無しさん
09/11/09 00:36:45
DateTimeの書式を決めるカルチャ設定はスレッドごとに云々
DateTimeFormatInfo使えんかね

258:デフォルトの名無しさん
09/11/09 00:39:13
>>256
そういうことなら、(当たり前のこと言うなと思うかもしれないけど)

>public DateTime Date {get; set;}
このプロパティにはXmlIgnore属性をつけておいて、このプロパティの値を
「独自の日付方式」の文字列で設定/取得するデシリアライズ用のダミーの
プロパティーを用意するだけじゃないの?

259:251
09/11/09 01:04:58
>>257
シリアライザの方はカルチャ設定の書式ではなくW3Cの仕様にしたがって変換してるみたいです。

>>258
そうするとパブリックな日付のプロパティが2つ出来てしまうわけですよね。
あんまり無駄なパブリックメンバは作りたくないというのが正直なところです・・・

とりあえず、IXmlSerializable を実装した DateTime の子クラスを作って使うことにしてみます。
W3C規定の形式以外はこれが正解になるんだろか?

260:251
09/11/09 01:07:02
って、DateTime は継承出来ませんね・・・

261:デフォルトの名無しさん
09/11/09 01:09:13
それは255で既に指摘されてるじゃん

262:251
09/11/09 01:30:57
ググったところ、
DateTimeをラップして IXmlSerializable を実装するクラスを書くか
日付のプロパティ持ってるクラス自体で IXmlSerializable を実装して
他のプロパティでも属性使って楽するのを放棄するかの2パターンぐらいみたいですね。

うう、なんかすっきりしないなぁ。

263:デフォルトの名無しさん
09/11/09 09:07:39
以下のようなクラスがあった場合

public 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みたいな)を
作るしかないのでしょうか?


264:デフォルトの名無しさん
09/11/09 10:46:30
>>263
イマイチ意図が読み取れないけど
GETだけのプロパティアクセスはだめなの?


265:デフォルトの名無しさん
09/11/09 12:37:34
>>264
Cのtypedefみたいなことがしたかったんですが、C#のusingだと別名なだけで
相互に代入してもコンパイルエラーにはならないみたいですね。

やりたかったことは、以下でした
・A.IDとB.IDはお互いに採番体系が異るのでコード中で混ざらないようにしたい
(コンパイラにミスを見つけさせたい)
・ID自体にはメソッドもプロパティも不要なのでなるべくクラスは作りたくない
・プロパティはセッタもゲッタも必要

一番目か二番目を妥協するしかないのかしらん

266:デフォルトの名無しさん
09/11/09 12:50:14
えっ

267:デフォルトの名無しさん
09/11/09 12:50:38
ますますわからんw

268:デフォルトの名無しさん
09/11/09 12:59:22
メリットがいまいちわからんな…

269:デフォルトの名無しさん
09/11/09 13:15:18
>>210です
ロケーションの変更は
URLリンク(msdn.microsoft.com)
でわかったんですがキーロックの方法がわかりません
画面コピーしたモーダルウィンドウを全画面で出すとかですかね?
イベントをおおもとでキャッチしてしまえばいいんですが
作成しているのがコントロールオブジェクトなので親のイベントを
横取りするのも作法としてどうなのかと思いますし、方法もわかりません
ご意見をお願いします

270:デフォルトの名無しさん
09/11/09 13:41:33
>>269
通常はAPIのSetWindowsHookExを呼んでキーボードフック(WH_KEYBOARD_LL)でやるんだけど
WMだとどうかな。一応、非公式でこのAPIそのものはあるみたいだが。

271:デフォルトの名無しさん
09/11/09 13:58:57
>>268
たとえば、A.IDとB.IDを受けとってなにかするメソッドHogeがあったとして、
> public static void Hoge(string aId, string bId) {....}
コーディング中に第一引数と第二引数が逆になっちゃってもコンパイル時にはねて欲しいんですよ。
この場合はプロパティを直接渡すんじゃなくてクラスで渡せば問題ないですが。

272:デフォルトの名無しさん
09/11/09 14:16:40
typedefってエラーになったんだっけ?


273:デフォルトの名無しさん
09/11/09 14:21:42
>>272
俺も疑問に思ったんで今試したが普通に通るな。警告すらでなかったぞ。
#cygwinのgccで警告最大でコンパイルした結果。彼は何か勘違いしてる気がする。

274:デフォルトの名無しさん
09/11/09 14:23:56
クラス(とかstruct)で渡せばいい話じゃない

275:デフォルトの名無しさん
09/11/09 14:28:08
IDだけのクラス作ってもいいと思うよ
IDクラスからAIDとBID継承させるとか

276:デフォルトの名無しさん
09/11/09 14:40:14
>>273
VC++のclで警告レベル最大でコンパイルしても警告出ないね

277:デフォルトの名無しさん
09/11/09 14:44:43
C#やJavaは基本型もオブジェクトとして扱っていることが優れた言語仕様だと思うし
intという抽象度で表現出来る範囲を逸脱したオブジェクトなら専用のクラスにすべきだと思う

278:デフォルトの名無しさん
09/11/09 14:59:05
> 基本型もオブジェクトとして扱っている

思いっ切り間違ってるんだが

279:デフォルトの名無しさん
09/11/09 15:06:32
Javaとは違うのだよ、Javaとは

280:デフォルトの名無しさん
09/11/09 15:07:57
構造体なんか廃止すればいいのに

281:デフォルトの名無しさん
09/11/09 15:08:37
>>270
ありがとうございます
一度キーワードがわかると情報がざくざくあつまってきますね
SetWindowsHookExを読んでフックする方法の弱点として
フックを登録できるのが1つだけのようです
なので他のアプリが使ってたら不具合が出たりするようです

サブクラス化というキーワードも出て来ましたが、これは
フックするというより盗み見するだけですか?

情報が集まったので方針を決めたいと思います
ありがとうございました

282:デフォルトの名無しさん
09/11/09 15:22:43
そんなことないです
グローバルフックもローカルフックもCallNextHookExってのを使ってチェーン状に管理しています

サブクラス化はイベントの起動に利用するだけでメッセージ潰したりはできません

283:デフォルトの名無しさん
09/11/09 16:18:57
まあキーロックが目的なら握りつぶすわけで、どんな方法でも
他のキー入力当てにしてるプロシージャに影響出ないわけないなw

284:デフォルトの名無しさん
09/11/09 16:41:18
private ContextMenuStrip cms_tasktry = new ContextMenuStrip();
と自分で書いて関連付けた時に最初のクリックではメニューが表示されず
二回目以降にしか表示されるのですがこれを最初のクリックで表示する
方法はないでしょうか?。

また以下のように書いた場合にexitをクリックしてもタスクトレイのアイコンが
消えないのですが、これを消えるようにできないでしょうか?。

private NotifyIcon tasktry = new NotifyIcon();
cms_tasktry.Items.Add("Exit").Click += delegate(Object obj, EventArgs ea)
{
tasktry.Visible = false;
Close();
};

285:デフォルトの名無しさん
09/11/09 16:55:53
tasktry.Dispose() 呼んだらどうかな。

286:デフォルトの名無しさん
09/11/09 17:00:44
って>>284のだけで1回のクリックでメニュー出るし終了時に消えたけど。
環境は?

287:デフォルトの名無しさん
09/11/09 17:13:22
Openingで書いているせいでしょうか?

private 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
です。

288:デフォルトの名無しさん
09/11/09 17:50:25
Openingでやってる理由は?
Load時に一緒にやればいいじゃない。
アイコン消えない理由はそれとは違うようだが。

289:デフォルトの名無しさん
09/11/09 17:57:06
>>288
ログイン処理した時にメニューを書き換えているからですがnameでTextを
書き換えたり非表示にしたりする手もありますね。

290:デフォルトの名無しさん
09/11/09 18:05:13
まあ何回かやってみたけど、Openingイベント時にメニューが1つもないと出ないね。
その時に追加しても遅いみたい。

291:デフォルトの名無しさん
09/11/09 18:07:18
>>290
!するとLoad時にゴミを1つつけておけばいいのかな
試してきます

292:デフォルトの名無しさん
09/11/09 18:07:30
de?

293:デフォルトの名無しさん
09/11/09 19:50:07
System.Threading.Thread.Sleep(3000);
this.Storyboard1.Begin();

このコードは3秒待つまで2行目は実行されないですよね?

294:デフォルトの名無しさん
09/11/09 19:56:29
試せば?

295:デフォルトの名無しさん
09/11/09 20:09:24
普通、次の行の処理はしないと思うんですが、2行目の処理が3秒飛ぶんです。
あり得ますか?

296:デフォルトの名無しさん
09/11/09 20:15:24
飛ぶなんて俺様用語で言われても
飛びます飛びますってかw


297:デフォルトの名無しさん
09/11/09 20:26:18
GUIのスレッドでSleepしちゃダメだよ
Storyboard使ってるんだったら3秒後にアニメーションをスタートするアニメーションを作れるだろ

298:デフォルトの名無しさん
09/11/09 20:30:18
記事クラスと、記事のコレクションである掲示板クラスがあるとして、
記事の削除メソッドを実装するとしたら記事クラスと掲示板クラスの何方が適当でしょうか?


299:デフォルトの名無しさん
09/11/09 20:32:12
クラスってなんですか?

300:デフォルトの名無しさん
09/11/09 20:36:00
掲示板クラスの方に実装するのが適当

301:デフォルトの名無しさん
09/11/09 20:36:00
>>297
GUIのスレッドではSleepは機能しないと覚えておけばいいんですか?
この3秒にSleepではなく処理を入れたいんですが、
まさかGUIスレッドの中では同時に処理できる行はガンガン並行処理して次の行、次の行が実行されていくんでしょうか?
めちゃくちゃなんですけど

302:デフォルトの名無しさん
09/11/09 20:41:43
GUIだとGUI自体の機能もSleepした後でその後の文が実行される

303:デフォルトの名無しさん
09/11/09 20:42:09
>>301
お前の頭がむちゃくちゃだよ

304:デフォルトの名無しさん
09/11/09 20:42:17
違う。スリープさせるとGUIがフリーズするからやってはいけない。
this.Storyboard1.Begin();は絶対に3秒経過するまで実行されない。その間GUIはフリーズする。
基本的にSilverlightは(Silverlightのスレに書き込んでるだろ)GUIスレッドでのSleep禁止ということになってるから
何が起こっても文句は言えない。WPFやSilverlightのアニメーションは時間に依存するからややこしい。

305:デフォルトの名無しさん
09/11/09 20:47:00
WMPコンポーネントを使ってmp3プレイヤーを作っているのですが、
WMP9からWMP11にアップデートすると、
そのソフト自体の起動や処理が重くなったように感じます。
これは仕方無い事なんでしょうかね?

306:デフォルトの名無しさん
09/11/09 20:58:28
自分でデコードしてDirectSoundで鳴らしたら

307:デフォルトの名無しさん
09/11/09 21:10:12
お前のプログラムがめちゃくちゃなんだろうよ


308:デフォルトの名無しさん
09/11/09 21:10:16
DirectSoundはプレイステータス変更時のようなイベントハンドラは提供されてますか?
それが無いと不便で不便で・・・

309:デフォルトの名無しさん
09/11/09 21:16:33
>>304
silverlight限定の仕様だったんですね
FormGUIの基本なのかと思っちゃいました。
silverlightと書き込まなかったので一生解決できないところでした
ありがとうございます!

310:デフォルトの名無しさん
09/11/09 21:19:55
>>308
いやDirectSoundって自分でバッファに波形データを直接書き込んでいくんだぞ
何でもできるが何もできない

>>309
Silverlightに限らずGUIで時間のかかる処理をしてはいけない。
一応WPFやWinFormsではそれによってGUIがフリーズするのを回避する方法が用意されてるけど
やらないに越したことはない。
Silverlightに限ってはそういう回避方法が無いので絶対ダメ。

311:デフォルトの名無しさん
09/11/09 21:19:55
めちゃくちゃとむちゃくちゃってなにか違うの?

312:デフォルトの名無しさん
09/11/09 21:27:16
>>310
ありがとうございます。
DirectSoundで調べてみたいと思いますが、なんだか難しそうですね。。


313:デフォルトの名無しさん
09/11/09 21:43:18
滅茶苦茶
無茶苦茶
滅無


314:デフォルトの名無しさん
09/11/10 00:09:25
C#でメッセンジャーみたいな物を制作しようと思い、
サーバーの部分だけ作ってみてビルドして、実行するとフリーズしてしまうんですが、
原因が分かりません。教えていただけないでしょうか?初心者ですいません。
  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();
   }

315:デフォルトの名無しさん
09/11/10 00:27:45
TcpListener.AcceptTcpClientメソッド
AcceptTcpClient は、データの送受信に使用できる TcpClient を返すブロッキング メソッドです。ブロックしないようにする場合は、Pending メソッドを使用して、接続要求が受信接続キュー内で使用可能かどうかを確認します。
ではないのか?

316:デフォルトの名無しさん
09/11/10 00:47:28
>>315
解決できるかどうか分かりませんが、Pending メソッドについて調べてきます。


317:デフォルトの名無しさん
09/11/10 02:15:12
たとえPendingで確認しても、GUIスレッドで処理してたらクライアントが切断するまで止まるじゃん

318:デフォルトの名無しさん
09/11/10 09:40:49
非同期処理にしろよ・・・・

319:デフォルトの名無しさん
09/11/10 09:43:53
クライアントからの切断は取れたり取れなかったりするからね

320:315
09/11/10 15:30:23
>>317
>>318
>>319
コメントありがとうございます。
非同期通信についても調べてみます

321:314
09/11/10 15:31:37
↑314でした。すいません><

322:デフォルトの名無しさん
09/11/10 15:48:23
非同期通信と通信での非同期処理は別の話だからなw

323:デフォルトの名無しさん
09/11/10 18:05:30
流石に一緒にする奴はいないと思うぞwwww

324:デフォルトの名無しさん
09/11/10 18:08:54
>>284 は kb135788 かな

325:デフォルトの名無しさん
09/11/10 18:09:09
ここにいるぞ

326:デフォルトの名無しさん
09/11/10 20:32:36
BackgroundWorker_DoWorkでList<>.Sortを実行中にキャンセルボタンをおされたらを処理を中止したいんですが
何かいい方法ないですか?
自分でループしてる処理なら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;
}

327:デフォルトの名無しさん
09/11/10 20:46:48
デリゲートとか何の役にたつんだよぽ

328:デフォルトの名無しさん
09/11/10 20:57:43
なきゃないで問題ない

329:デフォルトの名無しさん
09/11/10 21:21:54
デリゲートなかったらメソッド持ってるクラス渡すか継承して実装するかの二択になるからなぁ。


330:デフォルトの名無しさん
09/11/10 21:35:48
>>346
yield

331:デフォルトの名無しさん
09/11/10 21:38:01
おっ、書けた。
>>326
yield を使って止められるようにすればいい。
貼ったソースはWorker操作のためのサンプルだと理解しているが、
もし本気コードならいちいちintに変換しながら比較するなんて馬鹿なことはやめたほうがいいぞ。
一括でソート済みsetに放り込んで再び取り出したほうがよほど速い。

332:デフォルトの名無しさん
09/11/10 21:42:18
yieldでどうやってlist.Sortを止めるんだよ
無理矢理止めるならlist.Sortに渡すコールバック内で例外投げるくらいしかないと思う

333:デフォルトの名無しさん
09/11/10 21:54:47
現在アクティブなコントロールが、どの型か調べて
型に応じて動作を行うというものを作っております

たとえば、WebBrowserならMessageBox.Show("WebBrowser","種類");
みたいな感じで


アクティブなコントロールをthis.ActiveControlで取得まではできるのですが
その取得したコントロールの型同士を比較するにはどうすればいいでしょうか

334:デフォルトの名無しさん
09/11/10 22:00:45
あるオブジェクトが特定の型かどうかを調べるにはisを使う
あるオブジェクトの型名などを取得するにはGetType

335:デフォルトの名無しさん
09/11/10 22:03:50
>>334
if(this.ActiveControl is WebBrowser)
で比較できましたありがとうございました

336:デフォルトの名無しさん
09/11/10 22:05:32
ボタンをショートカットに対応させたいんだけど
ボタンをクリックしたことにするにはどうすればいいでしょーか

337:デフォルトの名無しさん
09/11/10 22:05:49
あらま
さげわすれごめんなさい

338:デフォルトの名無しさん
09/11/10 22:18:56
そんなことしなくてもボタンのTextの最後に&Xを付けるだけ(Xは任意のショートカットキー)

339:デフォルトの名無しさん
09/11/10 22:23:24
フォームかコントロールでキーイベント拾ったら?

340:デフォルトの名無しさん
09/11/10 22:24:53
あーあー、あったな、そんな機能。

341:デフォルトの名無しさん
09/11/10 23:45:23
WebBrowserで送信する内容を取得したりすることってできますか?
主にヘッダーのことですが

342:デフォルトの名無しさん
09/11/10 23:53:45
WinPcap

343:デフォルトの名無しさん
09/11/11 00:00:42
>>342
すいません、WebBrowserコントロールの話ですorz

マイクロソフトのWebBrowserは便利ではあるのですがなかなか使いづらい・・・
使用制限の無い便利なブラウザコントロールないかなあ・・・・

344:デフォルトの名無しさん
09/11/11 01:17:34
関係ないが >>343 ってVIPのスレにも来てなかったか?

345:デフォルトの名無しさん
09/11/11 01:19:43
IEだろうとWebBrowserだろうと普通にネットワーク経由するなら取得できるじゃん

346:デフォルトの名無しさん
09/11/11 01:21:35
>>344
ここで答えもらえなかったから行ったんじゃないの?
ほんと関係ないな

347:デフォルトの名無しさん
09/11/11 23:45:59
System.Xml.Linq.XElement.Load メソッドで発生する全例外について知る方法はありますか?
MSDNに例外情報は記載されていなかったのですが、System.IO.FileNotFoundExceptionが発生しました。
System.IO.IOExceptionを継承した例外やArgumentNullException等が起きると予想できますが、
他にも発生しますか?

348:デフォルトの名無しさん
09/11/11 23:58:59
XLINQでは,読み込みは基本的にXmlReaderに準じる
ArgumentExceptionやInvalidOperationの派生型が発生する場合は
使い方に問題があるということだから原則キャッチ禁止

349:デフォルトの名無しさん
09/11/12 00:05:31
>>347
目的でアドバイスが変わる
現段階のという条件をつければ解析して
可能かもしれないという話は別にして

350:デフォルトの名無しさん
09/11/12 00:16:01
ドキュメントに書いてないということは仕様として決まってないということなので
解析してキャッチしたりするのはあんまり良くないな
XElement.Load(string)はファクトリーメソッドということになってるXmlReader.Createに依存してるので
実際何やるかわからないんだよね
不安なら他のオーバーロード使ったほうが確実

351:デフォルトの名無しさん
09/11/12 00:52:22
>>348-350
ありがとうございます

例外の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 には直接の継承関係は無いはずなのに

該当箇所は、何らかのエラーが発生したら、メッセージボックスを表示して強制終了する積りです。

352:デフォルトの名無しさん
09/11/12 01:19:56
Windowsのアプリケーションを作るのは
Windows APIと.NETの二種類があるの?
Windows APIって.NETより難しいんでしょ?

353:デフォルトの名無しさん
09/11/12 01:28:43
やる気が無い奴は消えろ

354:デフォルトの名無しさん
09/11/12 02:08:30
C#で設計を学びたいのですが、何から手を付けたらいいんでしょう?
自分で考えたモデリングが正しい(あるいは悪くない)ことを客観的に測る指標などは存在するのでしょうか?

クラスを書くたびに間違ったことしてるんじゃないかと不安になります。

355:デフォルトの名無しさん
09/11/12 02:13:21
間違ってるということは間違ったときに気付けば良いじゃないか

356:デフォルトの名無しさん
09/11/12 02:23:02
こればかりは経験も必要だしな

357:デフォルトの名無しさん
09/11/12 02:24:09
>>355
それだと動けばいいじゃん、になっちゃいません?
動くけど設計上よろしくない(拡張性/保守性がないとか)ってのをどうやって自分で認識したらいいんでしょう?


358:デフォルトの名無しさん
09/11/12 02:28:06
C#でコンデンサー作った。電気がたまります

359:デフォルトの名無しさん
09/11/12 02:31:00
たしかに「もっと優れたやり方があるのでは」って不安はあるわな

360:デフォルトの名無しさん
09/11/12 02:37:41
多少のプログラム経験年数はあるが、完璧に満足したソースは無い
それが成長というものじゃないのかね

361:デフォルトの名無しさん
09/11/12 02:41:00
ここらへんなんか読んでみたら?
URLリンク(labo.mamezou.com)

362:デフォルトの名無しさん
09/11/12 02:42:22
ここでそういう高尚なこと聞くのが間違いだろJK


363:デフォルトの名無しさん
09/11/12 02:44:30
>>360
その"満足出来なかった"っていうのは何をどう評価して満足出来なかったんでしょうか?
そこらへんが肝な気がする。



364:デフォルトの名無しさん
09/11/12 02:45:40
>>357
>それだと動けばいいじゃん、になっちゃいません?

ならないよ

間違ってるのに間違ったことに気付いていない場合や
判ってて直そうとしない場合はその限りではないが
自分で問題意識を持ち続けて常に改良を続けるのが
本来のオブジェクト指向的リファクタリングの発想

365:デフォルトの名無しさん
09/11/12 02:53:54
莫大な金と人と時間をかけたOSですら日々アップデートなどしてるのに
完璧なソースだと?

366:デフォルトの名無しさん
09/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|


367:デフォルトの名無しさん
09/11/12 03:50:51
>>363 経験的な先読み予想があって、「嗚呼本当はこういう構成にしたいんだけど
後で使わないかもしれないからオーバースペックにする必要も無いか」だとか
「今の構成だとこうした方が早道だ」とか
「正規化よりもリアリティ」だとか
色々あって理想通りにはいかない事なんてあるある探検隊

学校のテスト勉強と違って正解なんて相対的なものだ

何かに気づいて知ることで考え方やアプローチが広がるから、
経験無い内に全てを網羅した答えなんて得られないと言わざるを得ない
‥って言ってもあきらめろって意味じゃないのはわかるよな

368:デフォルトの名無しさん
09/11/12 04:49:40
10年くらいかかりますか?

369:デフォルトの名無しさん
09/11/12 05:08:13
それを知っているのは自分だけ

370:デフォルトの名無しさん
09/11/12 07:48:48
自作のコントロールをデザイナで表示できるようにするにはどうすればいいですか?
タブコントロールを継承した、TabDXを作ったのですが
デザイナから直接これを使うことはできますか?
現状方法が分からず、一度普通のTabを配置して、TabDXにすべて置換するという作業を行っていますが
なんかとても頭悪いことをしているような気がしまして

371:デフォルトの名無しさん
09/11/12 07:53:07
DesignTimeVisible でぐぐれ

372:デフォルトの名無しさん
09/11/12 08:01:17
>>371
うああああああああああああああああああああああああああああああああああああ
今までコツコツ作ってきた200個近くのコントロールが全て表示されました
これで置換作業とはおさらばです!ありがとうございました!

373:デフォルトの名無しさん
09/11/12 08:03:03
あ、あまりにもうれしすぎて忘れてた
クラス内に
public abstract bool DesignTimeVisible()
{ return true; }
を追加
それだけでした

374:デフォルトの名無しさん
09/11/12 08:15:59
なんか関係無い俺でもうれしくなっちゃったw


375:デフォルトの名無しさん
09/11/12 08:18:44
ちゃんと設計の勉強したらC#で彼女が出来ました

376:デフォルトの名無しさん
09/11/12 08:29:10
>間違ってるのに間違ったことに気付いていない場合
これどうやったら間違いに気付くんだ?

>自分で問題意識を持ち続けて常に改良を続ける
その問題意識ってのが間違ってたらどうするんだ?

例えばドメインモデル貧血症なんかはどう考える?
全然問題無いじゃん!って言ってる人もいるけどそういう人達は間違ってるの?
それともそんな単語作りだした側が間違ってる?


377:デフォルトの名無しさん
09/11/12 08:34:46
デザパタの本でも読むのがいいんじゃないかなー
GoFのじゃなく設計のパターンの方
仕事で設計してるならいいけど個人で作ってる場合は
本だのネットだの勉強会だのに頼るしかないね

ダメ出ししてくれる場が無いからつらいのう

378:デフォルトの名無しさん
09/11/12 08:54:04
オープンソースのプロジェクトでも参加すればー

379:デフォルトの名無しさん
09/11/12 09:01:12
方法はどうあれ適当な単位での切りわけさえできてれば破綻しない
個々が少々ダメでも他に影響しない限り問題ない

380:デフォルトの名無しさん
09/11/12 09:11:22
ぶっちゃけ仕事じゃなく個人でやってるなら正しい設計なんて出来なくても問題ない。
外から見て問題のある動作するとかならともかく。

そんなことより楽しくて役に立つプログラムを素早く作れた方が評価されるよ。


381:デフォルトの名無しさん
09/11/12 09:24:21
あるクラスを継承してさらにインターフェイスを実装ってできるんだっけ?

public class AAA: System.Windows.Forms : IHogeHoge

みたく

382:デフォルトの名無しさん
09/11/12 09:27:32
>>381
public class AAA : System.Windows.Forms, IHogeHoge

もちょっと勉強しろよと

383:デフォルトの名無しさん
09/11/12 09:33:52
>>382
サンクス

そういう風に実装する記述見当たらなかったんでちょっと聞いてみようとorz
頑張って勉強するよ

384:デフォルトの名無しさん
09/11/12 09:41:44
間違ってるかどうかは環境によって変わることもある
間違いに気付かない人はある意味閉じた環境にいるニートみたいなもんで幸せな人なんだろう
そんなのがプロジェクトに参加したらアホ呼ばわりされるんだろう
PHPとかRubyとかにいっぱいいそうだ

385:デフォルトの名無しさん
09/11/12 09:51:59
>>384
>間違いに気付かない人はある意味閉じた環境にいるニートみたいなもんで幸せな人なんだろう
これ本当にそうだよなぁ。
良い意味でも悪い意味でも。
気付かなくても問題が無い=それで良いってこともあるしね。

ポトペタで作ったソフトのお陰でチーム全員が残業から開放された!なんて状況下で
こんなださい設計のソフト作るやつはクズだね、とか言ってもしかたないし。

あと他人と仕事するならどっかの時点でアホ呼ばわりされて間違いに気付かないとだな。
そういう意味じゃオープンソースのプロジェクトに混ざるってのは悪くないのかもしれん。


386:デフォルトの名無しさん
09/11/12 10:06:42
別にプログラミング自体が目的じゃないからな
科学技術計算のプログラムなんか想像を絶する汚さ

387:デフォルトの名無しさん
09/11/12 13:41:05
C# からEXCELにデータ突っ込んでグラフ作って印刷しようとすると結構めんどく背ぇ…

388:デフォルトの名無しさん
09/11/12 13:55:16
CSVにでも出力しといてVBSに投げるのがお勧め

389:デフォルトの名無しさん
09/11/12 14:01:13
餅は餅屋ってことですな

390:デフォルトの名無しさん
09/11/12 14:23:09
>>388のが楽にできそうだ・・・・
COMは開放やら何やら考えてるとすげぇめんどくさいし色々怖い

データファイルに落として
C#→EXCEL起動→強制的に内部の関数呼ぶとか、ボタン押したことにしてVBA実行→(゚д゚)ウマー
とか出来るんだろうか?


391:デフォルトの名無しさん
09/11/12 14:26:32
だからVBSならVBAと同じだしいちいちマクロ作らなくていいから綺麗じゃん

392:デフォルトの名無しさん
09/11/12 14:39:06
>>391
そっか、作っておいたVBSキックすればいいだけか
それで検討してみよう
サンクス!!

393:デフォルトの名無しさん
09/11/12 18:00:11
>>389
いいこと言うなあ。
csvで出力して、Process.StartでExcelを起動。これで十分だな。

394:デフォルトの名無しさん
09/11/12 19:48:39
> C#→EXCEL起動→強制的に内部の関数呼ぶとか、ボタン押したことにしてVBA実行→(゚д゚)ウマー
出来る

395:デフォルトの名無しさん
09/11/12 19:52:19
vstoでもよい

396:デフォルトの名無しさん
09/11/12 20:01:16
VBSで書いた方がC#より簡単とかお手軽とか思ってるのならよくわからん発想だな。
どう考えてもC#の方が簡単だと思うんだが・・・

自動記録したマクロ(VBA)をアドインで保存しといて、それを使うってのなら
まだ話も分かるんだけど

397:デフォルトの名無しさん
09/11/12 20:09:50
MakeTransparentでPictureboxの画像の背景を透明にすることはできたんだが
Clickイベントを画像の中だけで起こしたいんだけどどうやりゃいいの?
画像をクリックしたらなんか処理したいんだが
PictureBoxが四角形だから画像からちょっとはみでたところでもクリックイベントが発生しちゃってちょっと格好悪い。

398:デフォルトの名無しさん
09/11/12 20:20:42
>>397
クリックされた位置が透過色だったらイベントを握りつぶすだけじゃないのか?
もしくは、最初に非透過部分のRegionを作っておくか。
人に聞かなきゃならん問題とも思えんが。

399:デフォルトの名無しさん
09/11/12 20:33:14
kwsk

400:デフォルトの名無しさん
09/11/12 20:41:57
印刷のロジックを組んでいます。
x、y座標を、紙の端から数えるようにしようとしたら、印刷可能範囲を(0,0)と捉えているみたいです。

紙の左上端を起点にするにはどうすればよいでしょうか?
または、印刷可能範囲の左上端が、用紙の左上端からみてどの座標にあるかを取得する方法は ありますでしょうか?

よろしくお願いいたします。

401:デフォルトの名無しさん
09/11/12 20:55:51
HardMarginX,HardMarginYでいけたはず。

402:デフォルトの名無しさん
09/11/12 20:56:02
それはプリンタドライバが知っている世界では
てか可能範囲の余白を知ってどうしたいんだ
セットされた紙次第なのに

403:デフォルトの名無しさん
09/11/12 20:57:19
言語も不明なのによく答えたな

404:デフォルトの名無しさん
09/11/12 20:58:13
>>403 は勘違い。別のスレと間違えてた‥ orz

405:デフォルトの名無しさん
09/11/12 21:03:54
>>402
何いってんの。
例えば官製はがきの枠内に郵便番号が印刷できるのはどうしてだと思ってるんだよw

406:デフォルトの名無しさん
09/11/12 22:08:26
pictureBoxを2個用意して
片方の画像から片方の画像へ移す処理をしたいのですが
上手くいきません。

AllowDropがpictureboxには用意されていないようでどうしたらいいのかも
わからず…
何か良い方法ありませんか?

407:デフォルトの名無しさん
09/11/12 22:14:56
>>406
移すってどういう事をしたいのか正確に

ファイルの移動?ビットマップデータのコピー?
ドラッグドロップじゃないと出来ない処理?2つのコントロールは同じアプリケーションの同一フォーム?


408:デフォルトの名無しさん
09/11/12 22:18:19
自分のアプリケーション内でのドラッグドロップは基本的に自由
自分でマウスイベント拾って好きなように実装するんだよ

409:デフォルトの名無しさん
09/11/12 22:53:29
>>406
picturebox1.image=picturebox2.image
これでいけるよ

410:デフォルトの名無しさん
09/11/13 01:26:20
>>405
それってプリンタ毎に変わるでしょ?
ハード的な要因でドライバが設定した原点(0,0)を
ソフト側で変更なんて出来るの?

411:デフォルトの名無しさん
09/11/13 01:32:04
そういうのはドライバというソフトがやる

412:デフォルトの名無しさん
09/11/13 01:56:12
c++ではクラスのメンバにアクセスするとき->なのにc#だと.なんだね。

フォーム1ロードイベントにLabel1.Text="Hello";
ってC#そのまま書いたらコンパイル無効
thisも必ずつけなきゃいけないっぽい

C++ this->Label1->Text="Hello";
C# Label1.Text="aaa";

これだけみてもC#とC++はCという名前が共通についてるだけで
中身はかなり別言語なんだなぁ。

413:デフォルトの名無しさん
09/11/13 01:58:19
>>411
アプリって言い直したら気が済むのでしょうか

414:デフォルトの名無しさん
09/11/13 02:55:21
>>412
言ってることめちゃくちゃだが
独り言ならチラシの裏にしてくれ

415:デフォルトの名無しさん
09/11/13 03:02:03
ClickイベントとMouseClickイベントはどうちがうんだい

416:デフォルトの名無しさん
09/11/13 03:24:22
フォーカス当ててEnterキー押した時なんかにはClickしか発生しない。
詳しくはMSDNのClickイベントとMouseClickイベントのとこに書いてある。

417:デフォルトの名無しさん
09/11/13 03:29:03
コントロールによって違うから不用意に回答できないと思うが

418:デフォルトの名無しさん
09/11/13 04:51:50
MSDN読めと書いてあるじゃないか

419:デフォルトの名無しさん
09/11/13 06:38:47
>>412
死ね

420:デフォルトの名無しさん
09/11/13 09:11:29
ラベルはハンドル型だから厳密にいうとC++(非CLI)の->とも意味が違うんだよそれ
C#にも一応->演算子はあるけどこちらはポインタにしか使えない(それが本来の使い方)

421:デフォルトの名無しさん
09/11/13 11:56:33
プロパティで

private int age;

プロパティのset部分に
if(value>100)
age=100

ってやって、これ以外にageを設定するメソッドなどがなければ
みたいにやれば、外部クラスからは絶対にageを100より大きく設定できることはないよね?
それとも特殊な状況で変わったりしちゃう?

422:デフォルトの名無しさん
09/11/13 12:04:02
大丈夫じゃねーかなーと思ったけど
BinaryFormatter使ったらprivateなフィールドもシリアライズできるから違う値も入れられるかも知んない

試してないから見当違いの可能性大

423:デフォルトの名無しさん
09/11/13 13:04:12
List<T>で、必要上インデックス0が最後尾
つまりList<T>[0]がList<T>[List.Count-1]になるようなクラスを作りたいんですが

とりあえず内部にList<T>をもっといて読み出すときだけ逆になるようにして対処しようとしてるんですが、
<T>の部分の実装の仕方が見当が付きません。
なにかヒントもらえませんか?

424:デフォルトの名無しさん
09/11/13 13:14:58
横着しないで地道にList.Count-index-1を入れればいいだろ

425:デフォルトの名無しさん
09/11/13 13:15:54
C#の配列機能ってすごすぎるだろ
フィボナッチの数列の第一項から第100項まで1秒以内のあっというまに計算できるとか便利すぎるな。
マジC#最強だな

426:デフォルトの名無しさん
09/11/13 13:34:50
public class MyClass<T>
{
public T Value;

public MyClass(T v)
{
Value = v;
}
}

がぐぐったら出てきました^^;

427:デフォルトの名無しさん
09/11/13 15:57:06
C++のテンプレートってなんでC#だとジェネリックって名前変えてるんだ?
まったく同じに見えるんだが何か機能面で違うのか?

428:デフォルトの名無しさん
09/11/13 16:03:49
ここに書いてある
URLリンク(msdn.microsoft.com)

テンプレートは型パラメータの制約等をコンパイル時に解決するけど
ジェネリクスは実行時まで持ってる

429:デフォルトの名無しさん
09/11/13 16:12:03
いや機能全然違うから。
っつかテンプレートじゃないから。


430:デフォルトの名無しさん
09/11/13 16:44:02
まあjavaのジェネリックと比べたらかなりテンプレートに近いけどな

431:デフォルトの名無しさん
09/11/13 18:37:57
なんでジェネリクスとテンプレートが同じに見える奴がいるのか

432:デフォルトの名無しさん
09/11/13 19:35:11
HttpUtilityがusing System.Webに存在しないようなのですが
VS2010では他に移動しましたか?

433:デフォルトの名無しさん
09/11/13 19:36:42
参照設定した?

434:デフォルトの名無しさん
09/11/13 19:39:25
C#2008ExpressがインストールしてあるPCに
VS2005Stdを後からインストールしてもトラブル起きませんか?

435:デフォルトの名無しさん
09/11/13 19:42:09
気になるならvirtualPCにでも入れろ

436:デフォルトの名無しさん
09/11/13 19:42:44
不具合は起こらないと思うが、関連付けは上書きされるだろうな

437:デフォルトの名無しさん
09/11/13 19:49:09
>>433
言われる通りでした。
usingをしたら参照もしてくれると思っていたのですがそういうわけではないのですね。

438:デフォルトの名無しさん
09/11/13 19:55:50
ドラッグの件で質問した者ですがもう少し詳しく

動的にいくつか作成したpictureBoxをドラッグし、
元からあるpictureBoxに移動したいです。

この時、作成したpictureBoxの場所自体を移動させたいのですが
どこのpictureBoxからドラッグされてきたのかという情報の
取得方法がわかりません。

eでは、中のBitmapの情報のみを拾ってくるので…

439:デフォルトの名無しさん
09/11/13 19:56:14
>>437
usingを理解してない予感

using はネームスペースを省略しますよーってこと

本来なら
System.Windows.Form.WebBrowser
とか書かなきゃいけないけど
いちいちかくのはめんどくさい

だから
using System.Windows.Form;
って宣言しとけば
勝手にそこ以前をつけてくれる
もし、同じ名前があると曖昧だからフルで指定しろって言われるよ

440:デフォルトの名無しさん
09/11/13 20:14:59
using ってエイリアスぐらいの立ち位置だったんだなぁ。
たしかにusing だけじゃインテリセンスで補完もしてくれないか

441:デフォルトの名無しさん
09/11/13 20:16:45
>>438 自分でドラッグドロップどうさを MouseDown MouseMove を使って実装するとか
MouseDown のタイミングでどれを押下したかわかるだろ
ちょっと考えれば簡単。既存のドラッグ動作を良く観察して


442:デフォルトの名無しさん
09/11/13 21:06:50
DateTimePickerって1790年くらいが最小で1192年とか実装できない
なんで?せっかく1192年からの鎌倉時代を舞台とした物語を作ろうとおもったのにカレンダー表示機能ないからできないじゃないか
FuckYou!!!

443:デフォルトの名無しさん
09/11/13 21:11:03
自分で計算すりゃいいじゃん

444:デフォルトの名無しさん
09/11/13 21:35:05
そりゃ計算は出来るだろうけどコントロールが使えないのは悲しいよな。
テキストボックスで我慢するかカスタムコントロール作るかになっちゃう。

445:デフォルトの名無しさん
09/11/13 21:42:36
仮に日付が設定できたとして
一ヶ月が28日だったり
一年が13ヶ月だったりするんだぜ?

446:デフォルトの名無しさん
09/11/13 21:46:25
日めくりを想像しろ
月や年なんて日の属性だ

447:デフォルトの名無しさん
09/11/13 22:46:54
URLリンク(ja.wikipedia.org)
こんな月もあるし

448:デフォルトの名無しさん
09/11/13 23:18:30
世界の中心は欧米じゃないのに何言ってんの

449:デフォルトの名無しさん
09/11/13 23:20:39
>ユリウス暦の閏年のずれを戻すために1752/9/3 ~ 1752/9/13 は無い。
げぇ…

450:デフォルトの名無しさん
09/11/13 23:27:15
C#はVBとあまり変わらないよと言われたのですが
私にとっては別な言語に見えてしまいます。

たとえば、中国人や韓国人は同じアジアなので似てるといえば似てるのですが、
さすがに、東南アジアの人や、同じアジアと言われるオランダとかと比べると
まったく違うあろーって思います。ありがとうございました。

451:デフォルトの名無しさん
09/11/13 23:29:22
欧米の話じゃないんだが

452:デフォルトの名無しさん
09/11/13 23:36:11
そりゃVB関数使いまくってたらそうだろうな
先にC#やってたらVBは本当に全く同じなんだけどな

453:デフォルトの名無しさん
09/11/13 23:41:00
構文が違うだけで他は同じと言っていいな。

454:デフォルトの名無しさん
09/11/13 23:46:08
というか .NET がメインだからなあ

455:デフォルトの名無しさん
09/11/13 23:48:19
.NET環境なら言語の違いは関係ないと言ってもよい

456:デフォルトの名無しさん
09/11/13 23:49:50
B#で書いてC#に変換したら良いのでは?

457:デフォルトの名無しさん
09/11/13 23:56:53
.NETはC#選んどけば間違いない

458:デフォルトの名無しさん
09/11/14 00:01:03
未だにC#より使い易い言語に出会えない

459:デフォルトの名無しさん
09/11/14 00:02:41
C#できるならVB.NETも余裕

460:デフォルトの名無しさん
09/11/14 00:46:35
C#がというかVC#が快適すぎる
どうやったらここまでインテリセンス速くなるのか

461:デフォルトの名無しさん
09/11/14 01:52:02
>>447-449
日本では、明治5年(1872年)に、従来の太陽太陰暦を廃して翌年から太陽暦を採用することが布告された。
この「太陰暦ヲ廃シ太陽暦ヲ頒行ス」(明治5年太政官布告第337号、改暦ノ布告)では、
「來ル十二月三日ヲ以テ明治六年一月一日ト被定候事」として、グレゴリオ暦1873年1月1日に当たる
明治5年12月3日を明治6年1月1日とすることなどを定めた。そのため明治5年12月2日まで使用されていた
天保暦は旧暦となった(明治改暦、明治の改暦)。

462:デフォルトの名無しさん
09/11/14 01:59:37
それもきっちり施行されたわけではなく、和暦もあわせると専門家すらどっちでもいいじゃんと言い出すほど

463:デフォルトの名無しさん
09/11/14 10:13:46
.net Framewark Compact のメニューが使いづらいのでピクチャーボックス上にアイコンを直接描画してプラグインの機能を呼び出したいのですが
そのためのクラス設計がいまいちよくわかりません
プラグインを読み込むときピクチャーボックスのどの位置にアイコンを表示するか計算してプロパティに持たせる
OnPringイベントハンドラでそれぞれのプラグインが自分の位置にアイコンを表示する
プラグインにピクチャーボックスのクリックイベントハンドラを持たせる
クリックされたイベントがすべてのプラグインで評価され
自分のアイコン領域だったら機能を起動
こんな流れを考えてましたが

プラグインのアイコンを押したとき、さらに選択肢アイコンを表示したくなったらどうするのか?
その場合アイコンを管理するコンテナクラスを作るべきなのか?

そんなことをうだうだ悩んでます
どうかアドバイスをお願いします

464:デフォルトの名無しさん
09/11/14 10:26:49
プラグインって何だ?
普通にカスタムコントロールじゃね。

>選択肢
タップ&ホールドさせてメニュー出すのがWMの流儀。

465:デフォルトの名無しさん
09/11/14 10:27:42
>>463
描画方法はカスタムドローのノリでいいんじゃね
アイコンの管理はContextMenuのように親子を階層管理して、
クリックイベントは親で評価して該当する子に伝えて
子は自分の管理する孫にヒットテストしていく感じで



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch