10/03/22 15:43:53
>>234
そういうことはC#ではやらない
238:デフォルトの名無しさん
10/03/22 15:44:25
>>230
0件とnullは違う意味で使うだろ、常識的に考えて
239:デフォルトの名無しさん
10/03/22 15:44:27
>>235
>>224
240:デフォルトの名無しさん
10/03/22 15:45:38
>>235
プログラムはケツまで流すものだとか考えてる人なら
正常処理だけif文に入れる
ようは好きにしろ
241:デフォルトの名無しさん
10/03/22 15:47:20
>>230
そもそもDBの場合
まず件数引っ張ってからデータ取得しない?
242:デフォルトの名無しさん
10/03/22 15:48:28
条件式のネストを避ける書き方って一般的に何ていうんだっけ?
243:デフォルトの名無しさん
10/03/22 15:49:16
>>241
件数そのものを先に欲しい場合はそうするかもしれないが、
普通はカーソル機能を使って最初の1行目だけをもらう。
全部引っ張るようなメモリ食うようなことは避ける。
244:デフォルトの名無しさん
10/03/22 15:52:12
rowsよりcountのほうが軽いだろ
245:デフォルトの名無しさん
10/03/22 15:56:43
>>235
delegate bool EmptyDelegate(string[] s);
EmptyDelegate emp=IsEmp;
if(emp(s))
{
(処理)
}
private bool IsEmp(int n)
{
if ( a == null || a.Length > 0 )
return false;
}
}
246:デフォルトの名無しさん
10/03/22 16:00:15
>>245
普通のメソッドでなくデリゲートを使うのはなんで?
247:デフォルトの名無しさん
10/03/22 16:11:07
全角変換するなら文頭のスペースだけにしろよ
248:デフォルトの名無しさん
10/03/22 16:13:10
>>247
おまえがやれ
249:デフォルトの名無しさん
10/03/22 16:14:11
カッコの中の最初と最後を空けるなら全部に適用しろ
算術記号も同様に
250:193
10/03/22 16:15:01
>>237
>>239
>>240
どうもです。>>224さんのようにします(´・ω・`)ノシ
251:デフォルトの名無しさん
10/03/22 16:18:22
>>249
おまえがやれ
252:デフォルトの名無しさん
10/03/22 16:22:54
できないのか・・・
253:デフォルトの名無しさん
10/03/22 16:40:50
>>241
外部ってWebサービスでSOAPで受け取ったりするやつもある
254:デフォルトの名無しさん
10/03/22 17:19:50
(´・ω・`)←お亡くなりになられました
255:デフォルトの名無しさん
10/03/22 17:22:55
>>245
C#1.0のような腐った書き方のうえに腐った命名規則
256:デフォルトの名無しさん
10/03/22 17:30:51
スレタイ読めよ
257:デフォルトの名無しさん
10/03/22 17:34:24
というかCS0161。論外
258:デフォルトの名無しさん
10/03/22 17:45:33
>>192
はいそのとうりでボットを作りたいです。もっと初心者向けのスレないでしょうか。
259:デフォルトの名無しさん
10/03/22 17:47:09
いきなりボット作ろうとする人向けの初心者スレは無いと思う・・・
260:デフォルトの名無しさん
10/03/22 19:01:04
ちょっとしたプログラムを作って、そのできばえを達人に判定してもらって
技能向上に向けたアドバイスをいただけるスレは無いでしょうか?
261:デフォルトの名無しさん
10/03/22 19:03:52
ないんじゃね? あっても罵倒の嵐になりそうだし。
262:デフォルトの名無しさん
10/03/22 19:04:37
>>260
スクエニ社内のボット対策スレへ行け。
263:デフォルトの名無しさん
10/03/22 19:32:02
>>261
> あっても罵倒の嵐になりそうだし。
。・゚・(ノ∀`)・゚・。
264:デフォルトの名無しさん
10/03/22 19:44:01
第一
分かりやすいところでBOT開発の情報共有したら
社員にかぎつけられて対策されちゃうだろw
265:デフォルトの名無しさん
10/03/22 20:05:45
D言語使えばいいじゃん
266:デフォルトの名無しさん
10/03/22 20:10:15
>>265
【超高速】C/C++に代わる低級言語を開発したい
にカエレ
267:デフォルトの名無しさん
10/03/22 20:24:02
>>224
ナイスジョーク
268:デフォルトの名無しさん
10/03/22 21:16:55
>>233
記事じゃないけどこれとかどうよ
URLリンク(msdn.microsoft.com)
269:デフォルトの名無しさん
10/03/22 21:17:24
>>255
おまえバカ大将
270:デフォルトの名無しさん
10/03/22 21:24:02
>>269
おまえバカ元帥
271:デフォルトの名無しさん
10/03/22 21:25:49
>>233
コストを払うのは例外発生時
通常はtrycatchの外とほぼ変わりない
.NET アプリケーションのパフォーマンス関連のヒントとトリック
URLリンク(msdn.microsoft.com)
trycatchを置き換えるというよりは、条件分岐で例外が投げられるケースを減らす
条件分岐の外を大きくtrycatchで括って漏れた奴キャッチするとかそんなんでもいいの
272:デフォルトの名無しさん
10/03/22 21:26:18
>>188
WPFの中でDirectX使うのは可能だけど逆は無理
画像に描画するとかすれば無理やりできなくもないけど極めて非効率
273:デフォルトの名無しさん
10/03/22 22:14:07
VisualC#2008のデバッグについて質問があります。
デバッグ中時間がかかる処理をしているところを確認したいのです。デバッグの再生ボタンがグレーの実行状態のときに、どこで実行しているか知る方法はありますか?
プログラムは約5000行あり、ブレークポイントを設定する候補の箇所が多すぎる場合、いちいち手動で設定するのではたいへんなのです。
こういう場合、どのようにしたらよいものでしょう?
274:デフォルトの名無しさん
10/03/22 22:20:10
>>273
毎日どこから質問拾ってるのか?
275:デフォルトの名無しさん
10/03/22 22:23:32
>>273
ビデオの一時停止みたいなボタン
276:デフォルトの名無しさん
10/03/22 22:23:33
5000行で10個のブレイクポイントを張って、どの500行に時間がかかってるか確認。
ってのを何回か繰り返せばすぐわかるだろよ。
277:デフォルトの名無しさん
10/03/22 22:25:10
>>276
目安程度かもしれんがブレイクポイント入れるんじゃなく
その場所を通った時間をどこかに出力すればいいかもね
278:デフォルトの名無しさん
10/03/22 22:27:34
>>273
ブレークポイントを設定するのと同時にコンソール出力のコードを挿入していく。
恒常的に残すときはTrace呼び出しにする。
以降、ログを見るだけでエラーの発生箇所がだいたい分かるようになる。
279:デフォルトの名無しさん
10/03/22 22:27:45
少しは頭使えばいいのに。
280:デフォルトの名無しさん
10/03/22 23:04:22
\文字を使いたいのですがどうすればいいのでしょうか?
なんかプログラムの一部として認識されちゃいます
281:デフォルトの名無しさん
10/03/22 23:05:50
\\
または文字列リテラルの中で使うなら
@"\"でも可
282:デフォルトの名無しさん
10/03/22 23:09:32
>>281
この速さ
だから助かる
アリガトス
283:デフォルトの名無しさん
10/03/22 23:14:31
varってみんな使ってる?
使ってみたけどコードが短くはなるけど
わかりにくいような気がする
284:デフォルトの名無しさん
10/03/22 23:15:39
foreach (string a in listBox2.Items)
{
try
{
File.Move(a, textBox1.Text + "\\" + Path.GetFileName(a));
}
catch
{
MessageBox.Show("err");
}
}
これでArgumentExceptionはハンドルされませんでした
とかってエラーが出る
一応ファイルは移動できてるんだけどなんなんでしょう
285:デフォルトの名無しさん
10/03/22 23:17:58
なんのためのcatchだ
286:デフォルトの名無しさん
10/03/22 23:20:16
こうした方がよくねーか?
URLリンク(codepad.org)
287:デフォルトの名無しさん
10/03/22 23:20:50
>>284
foreach (var a in listBox2.Items)
{
try
{
File.Move(a.Text, textBox1.Text + "\\" + Path.GetFileName(a.Text));
}
catch
{
MessageBox.Show("err");
}
}
288:デフォルトの名無しさん
10/03/22 23:22:38
>>286
そんなはずかしいことするのはお前だけ
289:デフォルトの名無しさん
10/03/22 23:26:30
>>286と>>284じゃまったく意味合いが違っていくる
>>286なら1つのファイル移動が失敗しても他のはできる可能性があるが
>>284だと一度例外が出るとその時点で作業がストップする
290:デフォルトの名無しさん
10/03/22 23:28:30
間違った逆だ。>>286だと例外が出た視点で作業が継続できない
通常複数ファイル移動する場合に一部のファイルが存在しなかったりしても続けるからな
291:284
10/03/22 23:33:44
>>287試したけど、'object' に 'Text' の定義が含まれておらず、型 'object' の最初の引数を受け付ける拡張メソッドが見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
というかそもそも目的のファイルは全部ちゃんと移動できてるのにエラーが発生する意味がわからんのです
292:デフォルトの名無しさん
10/03/22 23:35:22
自分で制御がちゃんとできないならファイルとかフォルダがあるかどうか
確認する機能使えばいいんじゃね?
昔ながらのコードで返してくれるのがあったはず
293:デフォルトの名無しさん
10/03/22 23:36:33
>>291
型を指定してないからだろ?
listboxの行って確かstring管理だったはず
294:デフォルトの名無しさん
10/03/22 23:42:58
listviewitemと勘違いしてたわw
295:デフォルトの名無しさん
10/03/22 23:44:42
ListViewItemsは何のコレクションだよ
賢者タイムか・・・
296:デフォルトの名無しさん
10/03/22 23:48:56
catch(Exception e)
{
MessageBox.Show((e.GetTyppe()).FullName+e.Message);
}}
297:デフォルトの名無しさん
10/03/22 23:56:51
>>283
Hogeclass hogeclass = new Hogeclass();なんかは冗長なので、
var hogeclass = new Hogeclass();にする。
あとはLINQ関係かな。
298:デフォルトの名無しさん
10/03/23 00:00:06
>>291
コレクションのアイテムを入れる変数の型が違うとか
tryステートメント使ってるのにcatchで例外を捕捉しないとか
まず基本を身につけないと例外出る度に自分で対処できないよ
299:デフォルトの名無しさん
10/03/23 00:08:24
エクスプローラのフォルダツリーを使いたいのですが、
treeViewで作るしかないですか?
300:デフォルトの名無しさん
10/03/23 00:14:12
というより
エクスプローラのフォルダツリーを実現するための部品がtreeviewでしょ?
サンプルとかありそうな気もしたけどWPFくらいしかないな
301:デフォルトの名無しさん
10/03/23 00:16:43
>>298
例外捕捉するように書いてみたけど問題なく通るからcatchが捕捉するのも何もないようで
ArgumentExceptionはハンドルされませんでした
使用されたパラメータが有効ではありません。
が
Program.csの
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());←ここで起きてる
}
何が悪いんだ?
ちなみにファイルを移動し終わっても異常は無いけどウィンドウを動かしたり最小化したりするとエラーが出てくる
302:デフォルトの名無しさん
10/03/23 00:18:49
しらねえよw
プログラム全部が見えないのにw
303:デフォルトの名無しさん
10/03/23 00:26:00
>>300
ありがとうございます。
再帰が未熟なのでNodeの追加で悩んでいます・・・。
>>301
映画タイトル決定「この春、Form1で何かが起こる!?」
304:デフォルトの名無しさん
10/03/23 00:27:01
>>303
MSの公式サンプル
URLリンク(support.microsoft.com)
305:デフォルトの名無しさん
10/03/23 00:33:12
>>304
ありがとうございます。
見ながらやってみます。
306:デフォルトの名無しさん
10/03/23 00:33:34
Cでいうところのfscanf (fp, "%s%lf%lf", name,&height, &weight)みたいに構造体でtxtファイルにデータの管理をするには
どうすればいいでしょうか?
今思いつくのはstring型を特定の文字で引っ付けたり分解するものを利用すること位です
307:デフォルトの名無しさん
10/03/23 00:35:38
テキストボックスに時刻を表示しようとしています。
Thread thread = null;
private void timer_Tick(object sender, EventArgs e){
thread = new Thread(Thread);
thread.IsBackground = true;
thread.Start();
}
private void Thread(){
textBox.Text = DateTime.Now.ToString("HH:mm");
}
これでデバッグしようとしたら、
InvalidOperationExceptionはハンドルされませんでした。
有効ではないスレッド菅野捜査、コントロールが作成されたスレッド以外のスレッドからコントロールtextBox.Textがアクセスされました。
とエラーになります。
これはどう対処したらよいですか?
308:デフォルトの名無しさん
10/03/23 00:37:04
>>275
ほんとだ。これでした。ありがとうございます。
309:デフォルトの名無しさん
10/03/23 00:38:43
>>307
URLリンク(codepad.org)
310:284
10/03/23 00:42:32
うんごめんなさい
画像をpictureboxから解放せずにその画像ファイル移動したらそりゃエラーもでるよね
ここに書いたプログラムとは全然関係ありませんでした
ごめんなさい
自己解決しました
311:デフォルトの名無しさん
10/03/23 00:42:56
>>307
すごい。速い…。
これ、Classはひとつの場合でも使えるんですか?
312:デフォルトの名無しさん
10/03/23 00:45:31
>311
早いっていうかスレッドネタは最近多かったのでネタだろと半分思ってるので
アドレスを取っておいた
一つの場合っていうか、スレッドから呼ぶならそれ改造すればクラスじゃなくてもいけるでしょ
313:デフォルトの名無しさん
10/03/23 00:55:58
>>312
ネタではなく、初心者で困っていての質問であります。
で、すみません、コードを拝見していたんですが、改造できませんでした…。
さきほどの307にあてはめると、どのようにしたらよいでしょう?
Invokeもdelegateもworkerもcallbackもshownも初めてで、かなり手に余っています。
314:デフォルトの名無しさん
10/03/23 01:06:48
生徒らの個人情報流出について陳謝する長崎市教委の鈴木徹学校教育部長(右)ら=22日午後、長崎市役所
URLリンク(img.47news.jp)
【春祭り 】また割れ厨のスクショと個人情報が晒されてるぞ避難所17
URLリンク(jbbs.livedoor.jp)
本スレはこちら
新たな大物をいっしょに探しましょう
315:デフォルトの名無しさん
10/03/23 02:49:27
あるクラスの中のデリゲートにメソッドを入れたいが、そのメソッドの引数の数が
実行時までわからなくても、問題なく入れられる方法ってありますか?
デリゲートのオーバーロードを行って、引数のバリエーション分の
デリゲートをあらかじめ用意しておく方法を思いつきましたが、
ほかにいい方法があれば教えてほしいです。
316:デフォルトの名無しさん
10/03/23 02:52:09
リストにできるものならリスト渡せばいいし
できないものならクラス化すればいいんじゃね
317:デフォルトの名無しさん
10/03/23 02:56:29
>>315
すべての基底クラスがなにか知ってる?
318:315
10/03/23 02:57:48
なんか勘違いしてたかも…もう少し設計練ります。
ありがとうございました。
319:デフォルトの名無しさん
10/03/23 03:08:18
timer_Tickでスレッド開始するってのが何がしたいのか意味不明。
320:デフォルトの名無しさん
10/03/23 05:10:14
ブラクラとか
321:デフォルトの名無しさん
10/03/23 14:12:24
>>319意味不明
322:デフォルトの名無しさん
10/03/23 15:42:08
フォームのタイマでは時計は作れないというのは有名な話
>>309のSetTextをスレッドタイマのコールバックで呼び出す
30行目以降はいらない
323:デフォルトの名無しさん
10/03/23 16:03:48
ここで言っていたようにif文内に正常処理を書かないようにし
邪悪なものを最初に弾くようにしたらものすごくコードが見やすくなった
他にこういうことしたらコードが見やすくなるよというのありますか?
324:デフォルトの名無しさん
10/03/23 17:42:48
リファクタリング
325:デフォルトの名無しさん
10/03/23 17:45:51
それと同じようなものだけど、例外的な状況を弾くような場合じゃなくて
通常の分岐のときは、なるべくelseを書いてifよりもelseの方が長くなるようにする
326:デフォルトの名無しさん
10/03/23 18:07:41
「もしtrueなら」じゃなくて「もしfalseなら」という書き方のほうがいいということですね
327:デフォルトの名無しさん
10/03/23 18:21:47
単に長いものは後回しにした方が見やすいからです
328:デフォルトの名無しさん
10/03/23 19:48:02
ていうか、
{
もし false なら 抜ける;
trueの時のコード
・
・
・
・
};
とかの方がインデントが浅くて良いとかじゃないのん。
329:デフォルトの名無しさん
10/03/23 20:20:40
if節が長いかelse節が長いかは判定式に否定演算子を
付けてまわれば逆転するわけで、あまり意味はないわな。
330:デフォルトの名無しさん
10/03/23 20:22:02
if節を短くしたほうが可読性が上がる
331:デフォルトの名無しさん
10/03/23 20:47:19
っていうかそんな長いメソッドにはならないから
ifでどうのこうのなんてないな
332:デフォルトの名無しさん
10/03/23 22:34:41
>>323
> ここで言っていたようにif文内に正常処理を書かないようにし
> 邪悪なものを最初に弾くようにしたらものすごくコードが見やすくなった
やっぱそう思う?
俺も前々からそんな気がしていた・・・
こういうtipsがまとめられたサイトとか本とか無いかな。
初級者以上中上級者未満を対象にした情報源ってあまり無いよな('A` )b
333:デフォルトの名無しさん
10/03/23 22:38:50
Code Complete
334:デフォルトの名無しさん
10/03/23 22:48:06
CodeComplete高い
近所の紀伊国屋書店さん3日間も立ち読みしてごめんなさい
335:デフォルトの名無しさん
10/03/23 22:48:12
正直、elseより後が長い方が可読的って感覚は微妙。
完全には否定しないけどね。
俺もCの二重インクルード防止のなんかには、一般的な作法じゃないけど
空っぽの#ifdefを書くようにしてるから気持ちは分かる。
ただ、ifのブロックなんてCのインクルードファイルほど行数あるわけじゃないからねえ。
普通は。
336:デフォルトの名無しさん
10/03/23 22:49:36
俺はif節がよほど短いならさっさと脱出させてしまうなぁ
337:デフォルトの名無しさん
10/03/23 22:52:57
ListView.ListViewItemCollection.AddRange(ListView.ListViewItemCollection items)
のオーバーロードバージョンてどうやって使うんですか?サンプルないですか?
listView1.Items.AddRange(listView2.Items)とかやるとArgumentExceptionになるんですが…
338:デフォルトの名無しさん
10/03/23 23:00:08
>>337
実質内部で使う用と考えていい
339:デフォルトの名無しさん
10/03/23 23:03:02
>>338
ありがとうございます。CopyToします。
340:デフォルトの名無しさん
10/03/23 23:08:09
インデント深くしたくないから、すぐ脱出するコード書くなぁ。
341:デフォルトの名無しさん
10/03/23 23:13:58
画像処理系のソフト作っているんだけど
DirectXSDKを使わないとグラボの性能ほとんど使わないのかな?
342:デフォルトの名無しさん
10/03/23 23:23:00
いやDirectXと画像処理は関係ない
グラボはリアルタイムな処理に使うものであって静的な画像処理にはあまり使われない
シェーダ使えばできるけど面倒で制限が多い割には体感的にそんなに速くなるとは思えない
343:デフォルトの名無しさん
10/03/23 23:27:04
思えないね
344:デフォルトの名無しさん
10/03/23 23:40:07
動画だとCUDAとかViewerでもグラボを使っているものがあるから
そんなに変わるのかなと思ったんだけど使い方によるんですね
345:デフォルトの名無しさん
10/03/23 23:40:46
ていうか、WPF使ったら勝手に使われる。
346:デフォルトの名無しさん
10/03/23 23:42:57
WPF使おうが何使おうが明示的にグラボ使わない限りアプリケーションの画像処理には関係ない
347:デフォルトの名無しさん
10/03/23 23:46:35
>>346
画像処理と言っても色々ある。
単純なファイル形式変換ならグラボ関係ないが、
拡大、縮小、色変換、フィルタリングとかかけるならWPFやSilverlight使った方が圧倒的に便利かと。
348:デフォルトの名無しさん
10/03/23 23:51:01
そうか?
簡単な拡大縮小などで細かい制御を必要としないならともかく
シェーダ書くなら余計に手間かかるよ
349:デフォルトの名無しさん
10/03/23 23:53:03
>>348
シェーダー書かんでも代わりに色々やってくれるところがWPFのいいところじゃないの。
350:デフォルトの名無しさん
10/03/23 23:56:56
WPFでフィルタなどのエフェクトを自作しようと思ったら
ビットマップのピクセルをCPUで直接処理するのが嫌ならピクセルシェーダを書くしかない
351:デフォルトの名無しさん
10/03/23 23:57:02
>>323
無駄なtrueを書かない。
× if ( flag == true ) { }
○ if ( flag ) { }
352:デフォルトの名無しさん
10/03/23 23:59:56
わざわざ28レスも前に指摘することかよ
353:デフォルトの名無しさん
10/03/24 00:01:58
ワラタ
354:デフォルトの名無しさん
10/03/24 00:10:45
Windows.Formのタイトルバー?(タイトルと拡大縮小閉じるボタンのところ)
にコンポーネントを追加することはできますか?
同じボタンを1つ増やしたいのですが。
355:デフォルトの名無しさん
10/03/24 00:11:54
>>347
おお、今までWPF使ったことなかったけど使ってみようかな
そんな難しい処理じゃなくて画像Viewer的なのを作りたいだけなので
勉強してみようかな
356:デフォルトの名無しさん
10/03/24 00:18:59
>>351
> 無駄なtrueを書かない。
> × if ( flag == true ) { }
> ○ if ( flag ) { }
C畑出身の古参か?
時代は可読性を求める時代だぞ。
357:デフォルトの名無しさん
10/03/24 00:24:06
>>356
それは「無駄な可読性」というものだ。
ただし、C#はC/C++と比べてif節はbool型しか取らないから、
自然、これまでよりも式が厳格になる傾向があるけどな(式が非ゼロかどうかの判定とか)
358:デフォルトの名無しさん
10/03/24 00:26:58
flagの名前によるな
isHoge
とかならif(isHoge==true)は冗長だろ
359:デフォルトの名無しさん
10/03/24 00:29:48
bool評価なのにわざわざ flag == true って可読性高い?
大切なことなので2回言いましたってことか?
360:デフォルトの名無しさん
10/03/24 00:29:57
>>354
まあ無理
どうしてもと言うならタイトルバーなしにしてそれっぽいのを自分で描画する
361:デフォルトの名無しさん
10/03/24 00:35:13
>>332
そこで.NET4.0の契約プログラミングですよ。
362:デフォルトの名無しさん
10/03/24 00:43:42
>>360
ありがとうございます。
小さいウインドウから元のサイズにするだけなので
コンテキストメニューで代用します。
363:デフォルトの名無しさん
10/03/24 00:46:41
>>359
ある種の思い込みがある人たちにとってはそうなんでしょ。
思い込みっていうか、たぶん「ifが取るのはbool型の値」という風に論理的に考えず、
経験的に「ifの後に来るのは2項演算じゃないと気持ち悪い」と感じるタイプ。
そういう人は自分の感覚を修正すべきだね。
364:デフォルトの名無しさん
10/03/24 00:51:35
flag==true って書くのはいいけど、
flag!=true とか !(flag==true) とか !(flag==false) とかいろんなパターンで使われたらもうイライラ。
365:デフォルトの名無しさん
10/03/24 01:19:50
これは言葉に直すと素直だけど
if(n>0)
これはわかりにくいよね
if(n<=0)
でもelseの方の文を長くしたいならこうなる
if(!(n>0))
366:デフォルトの名無しさん
10/03/24 01:21:31
>>365
もうねろよ。疲れてんだよ。
367:デフォルトの名無しさん
10/03/24 01:53:35
WPF負荷高いね
ボタン4つ作っただけなのにウィンドウサイズ変えると
c2dの使用率50%になっちゃう
368:デフォルトの名無しさん
10/03/24 01:54:22
ねーよ
369:デフォルトの名無しさん
10/03/24 01:59:06
負荷は大きい、小さい。高い低いじゃない。
370:デフォルトの名無しさん
10/03/24 02:04:15
大負荷 の検索結果 約 5,920,000 件中 1 - 100 件目 (0.28 秒)
小負荷 の検索結果 約 3,390,000 件中 1 - 100 件目 (0.32 秒)
高負荷 の検索結果 約 2,480,000 件中 1 - 100 件目 (0.27 秒)
低負荷 の検索結果 約 1,260,000 件中 1 - 100 件目 (0.42 秒)
371:デフォルトの名無しさん
10/03/24 02:09:59
中負荷 の検索結果 約 7,770,000 件中 1 - 10 件目 (0.21 秒)
372:デフォルトの名無しさん
10/03/24 02:11:12
結論
負荷は中というのが正しい。
373:デフォルトの名無しさん
10/03/24 02:15:40
>>322
いつ時計を作ってたの?
時計をタイマーで作るの?
374:デフォルトの名無しさん
10/03/24 02:22:53
"大負荷" の検索結果 約 10,500 件中 1 - 50 件目 (0.26 秒)
"小負荷" の検索結果 約 13,500 件中 1 - 50 件目 (0.28 秒)
"高負荷" の検索結果 約 461,000 件中 1 - 50 件目 (0.31 秒)
"低負荷" の検索結果 約 123,000 件中 1 - 50 件目 (0.39 秒)
"中負荷" の検索結果 約 16,500 件中 1 - 50 件目 (0.33 秒)
375:デフォルトの名無しさん
10/03/24 03:07:34
"負荷が大きい" の検索結果 約 2,120,000 件
"負荷が小さい" の検索結果 約 1,070,000 件
"負荷が高い" の検索結果 約 69,000 件
"負荷が低い" の検索結果 約 1,600,000 件
"負荷が中い"との一致はありません。
"負荷が中くらい" の検索結果 約 18,600 件
376:デフォルトの名無しさん
10/03/24 03:19:07
一方その頃、「そんな大きなフカヒレは入らないよう!」
という夢を中国が見ていた。
377:デフォルトの名無しさん
10/03/24 03:36:16
いつまでやってんだ。スレタイ読め
378:デフォルトの名無しさん
10/03/24 05:35:51
本当に下らないかもしれませんが・・・
*.exe形式で配布~ローカルにインストールして使う、
WEB上のXMLを取得して処理したり、
XML-RPCでブログ投稿
などを行うソフトを作りたいのですが、
こういうソフトは、どういう単語で検索すれば情報が集められるのでしょうか
勉強するとっかかりが、全くわかりません。
本1冊と、C#入門、みたいなサイトは一通り勉強してきましたが
この辺の情報はなかったです。
「WEBサービス」では、サーバサイドの話のようで・・・
379:デフォルトの名無しさん
10/03/24 07:06:03
XML Web サービスクライアント、だな。
380:デフォルトの名無しさん
10/03/24 08:41:42
ちなみに「*.exe形式で配布~ローカルにインストールして使う、」
というのは実行ファイル形式のインストーラーのことだ。
基本的にはこれは.NETで作らない方がいい。
自己解凍書庫、インストーラー作成ツールなどを使う。
381:デフォルトの名無しさん
10/03/24 11:18:09
グローバリゼーションの警告うぜぇ…
382:デフォルトの名無しさん
10/03/24 11:41:39
directxはc++とかと構造は同じ?
383:デフォルトの名無しさん
10/03/24 11:48:42
>>382
その質問は、カレーとスプーンが構造が同じかと問うていることに等しい。
ちなみに、DirectXはCOMでできている。
384:デフォルトの名無しさん
10/03/24 11:49:29
単なるAPIの塊なのにC++から呼び出す場合とC#から呼び出す場合で違ってたら笑えない
385:デフォルトの名無しさん
10/03/24 13:48:55
レジストリの登録について質問があります。
自作のアプリケーションでjpgファイルを開くために、
registryValue = programpath + " %1";
として登録しました。
これで、アイコンを選んで、右クリックで登録したメニューを実行すると、
「パスに無効な文字が含まれています」とエラーになります。
どうやら、%1を
C:\DOCUME~1\USERNA~1\MYDOCU~1\data\20EAE6~1\PIC~2.JPG
のように、アプリケーションのショート名(?)に展開しているようです。
これを回避するには、どのようにしたらよいでしょう?
386:デフォルトの名無しさん
10/03/24 14:39:12
>>383
あっそう
387:デフォルトの名無しさん
10/03/24 17:05:37
string形式の変数aの指定した行の文字列を取得したいのですがどうすれば取得できますかね
388:デフォルトの名無しさん
10/03/24 17:06:27
String.Splitで配列に分解してアクセスすれ
389:デフォルトの名無しさん
10/03/24 17:08:09
>>387
StringReader.ReadLine
390:デフォルトの名無しさん
10/03/24 17:11:51
>>379>>380
ありがとうございます。
知りたかった情報が見つかりました
391:デフォルトの名無しさん
10/03/24 17:31:41
>>385
8.3形式のファイル名が問題なんじゃなくて、programpathに半角スペースが入っているせいで実行ファイルが見つかってないんじゃない?
392:デフォルトの名無しさん
10/03/24 18:34:36
WPFとC#のコードの連携の説明がどこにもない
コードからウィンドウサイズ変えることすらできない
使えない
393:デフォルトの名無しさん
10/03/24 18:38:08
お前の使えなさっぷりをそんなにアピールしなくても大丈夫、世間は意外に優しいよ
394:デフォルトの名無しさん
10/03/24 20:56:25
WPFのスレで聞けばいいのに
みんな始めたばかりだからやさしいぞ
395:デフォルトの名無しさん
10/03/24 22:17:27
自クラスのprivateフィールド変数もプロパティを
通してでないとアクセスできないようにする方法ありますか?
396:デフォルトの名無しさん
10/03/24 22:20:18
無理だろ
397:デフォルトの名無しさん
10/03/24 22:22:23
特にないな
変数名を\uxxxx並べた理解不能なのにしとくとかどう?
398:デフォルトの名無しさん
10/03/24 22:25:15
自動実装プロパティにするくらい
399:デフォルトの名無しさん
10/03/24 22:35:14
自クラスくらい自分が責任持って扱えよって思っちゃうけど、
複数人で1つのクラスいじってるような場面だとそうはイカンザキ?
400:デフォルトの名無しさん
10/03/24 22:42:59
その自動プロパティはgetsetの中身を省略することらしいですが
ここに式を記述してもいいのでしょうか?
そしたら思っているようなことができそうなんですが
public string Name
{
set{ this.Name=valeu;}
}
例えばこんな感じ
401:デフォルトの名無しさん
10/03/24 22:44:20
できるようになったら個人的にうれしいけど無理
402:デフォルトの名無しさん
10/03/24 22:45:38
>>395
そんなフィールド(とプロパティ)が存在しうるとして、
プロパティーのセッターやゲッターは自分自身を呼び出してバッキングフィールドに
値を代入したり取得したりするんだろうか。
それって無限に再帰することになるんじゃないか?
少しは頭を使おうよ。
まあ気持ちは理解できなくもないがw
VBはせっかくメソッド内Static変数があるんだから、ゲッターからもセッターからも
アクセスできる位置にメソッド内Static変数が書ける構文さえ用意してくれれば
バッキングフィールドを不要にできるんだけどな。
ことほど左様に、VBチームはやる気がなさ杉気が利かな杉。
開発者までVB厨っぽい。
403:デフォルトの名無しさん
10/03/24 22:46:04
>>395
それって、ごく普通のプロパティ公開のシチュエーションじゃないの?
404:デフォルトの名無しさん
10/03/24 22:48:03
privateな範囲くらいテメェで管理しろってことだろーけどね
405:デフォルトの名無しさん
10/03/24 22:48:13
URLリンク(msdn.microsoft.com)
406:デフォルトの名無しさん
10/03/24 22:50:34
別ファイルにpartialで分けて、privateフィールドは見ない振りをする
407:デフォルトの名無しさん
10/03/24 22:51:34
ProrertyChangedイベントを使えば>>395のご所望に近いことが出来そうな気が
しないでもないでもない
408:デフォルトの名無しさん
10/03/24 22:54:45
privateなフィールドに値を代入する時に適切な定義域かどうか確認するのがメンドイとか、そんな理由だろ。
フィールドに属性か何かで定義域指定できるようになったら蝶うれしいぞ。
409:デフォルトの名無しさん
10/03/24 22:55:31
そしてDbcへ・・・
410:デフォルトの名無しさん
10/03/24 22:57:15
privateな範囲ならDebug.Assert入れとけばいいじゃん
411:デフォルトの名無しさん
10/03/24 23:02:04
正直契約プログラミングはかなり興味ある。
412:デフォルトの名無しさん
10/03/24 23:02:36
興味あるならVS2010試そうぜ
413:デフォルトの名無しさん
10/03/24 23:03:49
ああ、そういうことか。
自分のクラスのprivateなメンバ変数に対してアクセスせず、
常にプロパティ越しにアクセスしたい、ということか。
すればいいじゃん。
こういうのはコーディングテクニックじゃなくて、ポリシーで解決すべきことがらだ。
どうしてもこねくり回したいなら
private変数と抽象プロパティを定義した親クラスを作って継承すればいい。
そんな必要性は感じられないが。
だいたい、VSなら特定の変数がどこで参照されてるか全検索は簡単にかけられるんだから、
一括で修正してしまえば済む話。
414:デフォルトの名無しさん
10/03/24 23:04:34
すべての変数がプロパティになればいいのに
415:デフォルトの名無しさん
10/03/24 23:08:51
元の木阿弥
416:デフォルトの名無しさん
10/03/24 23:12:42
まあ現実的な妥協としてはEditorBrowsable(false)を付けるぐらいかね。
あとは>>413の言うようにベースクラスのプロパティをフィールド代わりにするか。
でも一番の方法は、そんな下らないことは考えないこと。
417:デフォルトの名無しさん
10/03/25 00:34:54
>>414
否、すべての変数はグローバル変数とするべきだ
418:デフォルトの名無しさん
10/03/25 02:21:04
( ̄ー ̄)ふっ
419:デフォルトの名無しさん
10/03/25 03:19:34
(^-^)♪
420:デフォルトの名無しさん
10/03/25 04:35:11
URLリンク(msdn.microsoft.com)
この連載いいねー簡潔でわかり易いし
疑問に思ってたことがいくつか解決した
C#4.0はpythonでやってたようなことができるみたいだな
421:デフォルトの名無しさん
10/03/25 07:32:33
C#のクラスってC言語でいう構造体の延長だろ
たくさんのデータを含めるし。
422:デフォルトの名無しさん
10/03/25 07:37:21
えっ!?
423:デフォルトの名無しさん
10/03/25 07:40:40
第12回の「4. スレッド プールの何が問題なのだろう?」の話がかなりでたらめな件
424:デフォルトの名無しさん
10/03/25 07:52:00
でたらめはお前だカス
425:デフォルトの名無しさん
10/03/25 07:52:18
Indexというプロパティで配列の添え字範囲チェックしてるんだけど
Indexを呼び出す側でもやっぱり添え字でチェックして2重になってるんだけど
やっぱそういうもんですか?
それとこの場合ゲッターの戻り値どうすればいいでしょうか?
public int Index{set{if(0<=value)_index=value;}}
private void hoge()
{
}
426:デフォルトの名無しさん
10/03/25 07:55:05
誤って途中で書き込んでしまった
private void hoge()
{
++Index;
if(0<=idx && list.Count>idx) a(list[idx]);
}
427:デフォルトの名無しさん
10/03/25 08:39:59
>>425
基本的に、添字チェックはCLIのレベルで自動でやってくれるから必ずしもやらなくていい。
(すなわち添字チェックは最悪ひとつも書かなくていい。失敗したら例外が発生する)
で、そのセッターってなんかおかしくね?
428:デフォルトの名無しさん
10/03/25 09:16:02
てことは、tryで包み込むということかな
なんかどこまで例外処理を書けばいいか迷うね
下手したら同じ例外処理をいくつものクラス間で
3重4重やってしまうことになるわけで
続行して問題が出る場合以外は
条件分岐を極力書かずにtryで済ませる方が
いいような気がしてきた
429:デフォルトの名無しさん
10/03/25 09:22:04
例えば、picturebox.loadにしてもファイルが無ければ平気でエラー出して強制終了なるし
GetDirectoriesでもアクセスできないディレクトリを検索してエラー吐くし
.Netで用意されているクラスですらエラー出すんだから
正常な値であるはずという前提で作っていった方がいいのかな
430:デフォルトの名無しさん
10/03/25 09:30:11
おいおい・・・
431:デフォルトの名無しさん
10/03/25 13:19:43
>>428
最初の質問の時に「2度も添字チェックが必要なのかと」問われたので
必ずしもやらなくてもいいと答えただけで、
例外処理と明示的な添字チェックと比較して、
より書きやすい方法で書けばいいんだよ。
で、添字処理を自前でやるsetter/getterって、
C#で今まで必要になったことが一度もないんだが。オレだけ?
標準ライブラリのコンテナ使うだけで、困った事無い。
432:デフォルトの名無しさん
10/03/25 15:12:48
Graphicsで縁取り文字列を書こうとしてて問題が出てきたので誰か良い案があったら教えて下さい
↓のようにAddStringでpathに作ったアウトラインをWidenで太くしてやるやり方が
ググッたらシンプルなので使おうとしたのだけど、フォントサイズに対してWidenで太くする
サイズ(コード内でいうwidth)がでかくなるにつれ漢字などの細かい部分で意図しないツノが生えてきてしまうんだ
(このコードで言えば「刷」の左上など)
この現象の回避策や、他のシンプルな縁取り文字作成方法があったら教えて下さい(元からそういうフォントを使えというのは無しで)
// gはGraphics, pathはGraphicsPath
Font font = new Font("メイリオ", 26.25, FontStyle.Bold);
Single sizeInPixels = font.SizeInPoints * g.DpiY / 72F; // ピクセル単位のサイズに変換
Single width = 5.0F;
path.AddString("印刷中", font.FontFamily, (Int32)font.Style, sizeInPixels, new PointF(10, 10), null);
using (Pen pen = new Pen(Color.Black, width)) {
path.Widen(pen);
}
g.FillPath(Brushes.Black, path);
433:デフォルトの名無しさん
10/03/25 15:50:35
>>432ですけど自己解決しました。
Widenに使うPen(コードで言うpen)のLineJoinプロパティをLineJoin.Miter(デフォルト)以外にしたら出なくなった。
ついでにLineJoinの値によっては柔らかい感じにもできることが分かって
さらに得した気分。
お邪魔しました~
434:デフォルトの名無しさん
10/03/25 17:06:25
添え字のエラーを例外で処理するのはダメだろ
原則「発生したらバグ」の類の例外だ
それにIndexOutOfRangeやNullReferenceのような例外は一度出たら
頻繁に出ることが多いので例外で処理すると極端にパフォーマンスが低下することがある
435:デフォルトの名無しさん
10/03/25 17:12:11
はぁ!?
436:デフォルトの名無しさん
10/03/25 17:19:05
public/protectedメソッドorプロパティで外部から渡されたのに出すのはいいだろ
privateな部分では(渡す前に)Length参照した方がスマートじゃないでしょうか
437:デフォルトの名無しさん
10/03/25 17:24:02
>>436
おいおい・・・
438:デフォルトの名無しさん
10/03/25 18:35:00
自前のファイル入出力クラスで指定ディレクトリにある
ファイルを取得しstring[]で返すのを作ったとして
そのクラスを利用する側もやっぱりファイルがあるのかないのかチェックし
さらにそのクラス利用する側もファイルがなかった場合を想定してコードを書かないといけない
この同じチェックは永遠に続くの?
439:デフォルトの名無しさん
10/03/25 18:52:03
>>438
書きたければ書けばいいし、例外処理で済ますなら済ませればいい。
440:デフォルトの名無しさん
10/03/25 19:00:47
カスタマイズ可能なキーボードショートカットを実装したいです。
まず、
Up, Scroll, 20
Down, Scroll, -20
Right, Next
Left, Prev
というふうなテキストファイルを読み込んで、キーとメソッドを結び付けたいです。
(この例では、左からキー、メソッド名、パラメータにしてます)
具体的な実装方法として思いつくのが
・キーとメソッド名をもつ連想配列を用いて、switch文で分岐してメソッド呼び出し。
・switch文ではなく、リフレクションでメソッド呼び出し。
なのですが、上のはコードが冗長になりますし、下のはパフォーマンス面で不利かもしれません。
キーとデリゲートを持つ連想配列を用いて呼び出せればスマートだとは思うのですが、
引数が異なると別のデリゲートと、それを入れる連想配列を用意する必要がある(と思う)
ので悩ましいです。スマートにこなす方法なんかがあればアドバイスお願いします。
441:デフォルトの名無しさん
10/03/25 19:06:18
>>440
匿名メソッド
442:デフォルトの名無しさん
10/03/25 19:24:27
パフォーマンス気にするところじゃないな
443:デフォルトの名無しさん
10/03/25 19:38:46
>>440
その1行分を表現する構造体を作って、XMLSerializerでさくっと読み書き。
アプリ上ではDictionaryか何かの表持たせておく。
キーイベントを受け取ったら表を見て登録したメソッドを呼び出す。
メソッドの登録はdelegateかラムダ式を使えばいい。
444:デフォルトの名無しさん
10/03/25 20:39:31
ラムダ式の登場です。
445:デフォルトの名無しさん
10/03/25 20:52:59
果たしてふらっとスレの行く末やいかに!?
446:デフォルトの名無しさん
10/03/25 21:05:06
質問です
ListViewのチェックボクスのチェックを付けたり、外したりするのは画面からクリックしたときではないと無理なのですか?
ソース内でチェックを書き換えたいのですが、CheckedListBoxのSetItemCheckedメソッドみたいなのが存在しないみたいなので困っています
もともとはCheckedListBoxを使用していたのですが、アイコンを表示するためにListViewに変えました
チェックの状態が変わらないとItemCheckイベントも起きないですし、何か方法はあるのでしょうか
447:デフォルトの名無しさん
10/03/25 21:23:25
ListViewItem.Checked
448:デフォルトの名無しさん
10/03/25 21:43:06
DataTable で自動で計算する項目があるんだけど、
DataColumn.Expression では計算できないので、
DataTable.TableNewRow イベントで値を計算して入れようと思ってます。
これを XML で保存するために WriteXml すると自動で計算した項目も出力されると
思うのですが、自動で計算した項目は出力しないようにする方法はあるのでしょうか?
449:デフォルトの名無しさん
10/03/25 21:55:30
>>448
属性をつける
450:デフォルトの名無しさん
10/03/25 21:58:30
>>447
listView1.SelectedItems[0].Checkedのことですよね?
これってSelectedItemsには今チェックされている項目が格納されてると思うんですが、
このプロパティではチェックされている項目のチェックを外すことは出来てもチェックが付いていない項目にチェックを付けることは不可能ではないですか?
451:デフォルトの名無しさん
10/03/25 22:02:17
>>448
Copyして列をRemoveしたあとでWriteXmlするとか?
>>450
Itemsからアクセスすりゃよかろう
452:デフォルトの名無しさん
10/03/25 22:03:59
おおこんな簡単だったんですね
ありがとうございました
453:デフォルトの名無しさん
10/03/25 22:16:13
>>449
それとあんたうざい
454:デフォルトの名無しさん
10/03/25 22:31:10
>>453
ハァ?
無視させたいフィールド、プロパティにXMLIgnore属性をつけておいて、
XmlSerializerに食わせて吐き出させればよい。
455:デフォルトの名無しさん
10/03/25 22:37:55
やってみろw
456:デフォルトの名無しさん
10/03/25 22:43:15
webBrowserコントロール上でマウスカーソルが動いた時にイベントを拾いたいんですけど
なにか方法がありますか?FormとかButtonだとMouseMoveイベントがあったけど、それと
同等の機能がwebBrowserには見当たりません。
457:デフォルトの名無しさん
10/03/25 23:12:08
>>454
DataTable のカラムに XMLIgnore 属性つけられるなら
やってみせてくれw
458:デフォルトの名無しさん
10/03/25 23:14:05
IXmlSerializable実装して自分でシリアライズするかどうか決めたら
459:デフォルトの名無しさん
10/03/25 23:14:56
>>457
ハァ?
てめーがやれ。
460:デフォルトの名無しさん
10/03/25 23:17:29
>>458
それ結局XML吐く処理を全て自前で書くという意味だけどわかってる?
461:デフォルトの名無しさん
10/03/25 23:18:25
>>460
おお
462:デフォルトの名無しさん
10/03/25 23:18:54
>>459
馬鹿だからできねぇってこと知らないの?
463:デフォルトの名無しさん
10/03/25 23:20:14
o(´・ω・`) ぶつお
464:デフォルトの名無しさん
10/03/25 23:53:40
エクスプローラだとフォルダのプロパティで
フォルダ数、ファイル数が瞬時に出ますが
こういう機能はありますか?
465:デフォルトの名無しさん
10/03/25 23:55:37
瞬時に出ないよ。たくさんフォルダ・ファイルがあるところで見ると、
一生懸命カウントしてるのがわかる。
466:デフォルトの名無しさん
10/03/26 00:06:03
なるほど
あれはGetDirectoriesやGetFilesやるしかないですか?
ファイルやフォルダ検索の進行状況を表示させたいので
まず数を取得してやろうと思っていたんですが
467:デフォルトの名無しさん
10/03/26 00:17:52
なるほどなるほど
468:デフォルトの名無しさん
10/03/26 01:51:45
>>441-444
設定ファイルを読み込んだときに、
delegate void Invoke();
Invoke inv = () => Scroll(20);
てな感じのデリゲートをこしらえて辞書に登録すれば、呼び出し時はスマートに済ませそうですね。
こしらえるときは地道にswitchで分岐するとして。
しかしこれは、戻り値を返すメソッドの場合は呼び出し側に値を返せない欠点があります。
でも、戻り値を返すようなメソッドをキーに割り当てる場面は今のところないのでこれでいってみます。
469:デフォルトの名無しさん
10/03/26 02:26:54
コマンドのシグネチャを
void Execute(object[] parameters);
みたいにして、パラメータを配列で渡せばいい
470:デフォルトの名無しさん
10/03/26 07:19:29
>>456
URLリンク(www.k4.dion.ne.jp)
471:デフォルトの名無しさん
10/03/26 10:40:57
お世話になります。
以下のこと、教えてください。
VisualStudioにてユーザーコントロールやカスタムコントロールを作成し、ビルドすると、
そのコントロールがツールボックスの”(プロジェクト名)コンポーネント”といったタブ内に
デフォルトで配置されます。
このデフォルトの配置場所を任意のタブ内(該当タブが無ければ新規作成)にすることは可能でしょうか?
属性でなんとかなりそうな予感がしていたのですが、どうにも見つけきれませんでした。
よろしくお願いします。
472:デフォルトの名無しさん
10/03/26 10:44:25
>>471
そこは開発側で手をいれるところでなく、運用側で対処すべき問題だと思うんだが、どうよ。
473:デフォルトの名無しさん
10/03/26 10:58:04
URLリンク(codepad.org)
WINDOWSフォームを作っていてテストでちゃんと読み込んでいるかチェックしようとしたのですが
chengebox1にチェックを入れるとエラーが起きます。どこがおかしいのでしょうか
474:デフォルトの名無しさん
10/03/26 11:06:27
>>472
やはりそこは個人々々でなんとかしてもらうしかないですかね。
ありがとうございました。
475:デフォルトの名無しさん
10/03/26 11:17:37
>>473
エラーが出たならエラーの内容書けよカス
476:デフォルトの名無しさん
10/03/26 11:32:32
>>473
URLのソースコードを見てみたが、
とりあえずbutton1を押した後じゃないとcheckBox1は押しちゃいけないように見える。
というか、こんなレベルで詰まってちゃ何もできないぞ。
不具合が出たらデバッガで1行ずつ動かしながら再チェックする習慣をつけよう。
477:デフォルトの名無しさん
10/03/26 14:42:01
>>475
カス
478:デフォルトの名無しさん
10/03/26 15:39:08
URLリンク(www.atmarkit.co.jp)
このサンプルを動かそうと思ったのですが
html = ExpandTabs(html);
ネットで調べたのですがExpandTabsの所在がわかりません。
どれをusing指定すればいいのでしょうか?
479:デフォルトの名無しさん
10/03/26 15:44:31
>>478
何も考えずにソースをそのまま入れてみて
ExpandTabsにカーソルを合わせてみ
480:デフォルトの名無しさん
10/03/26 15:46:44
xxxx.ExpandTabsの形でないってことは同一クラスってことなんだが
481:デフォルトの名無しさん
10/03/26 15:48:07
>>479
そういう意味じゃなくて・・・
2004年当時と違って場所が変わってるようなので
サンプルソースのusingだけだと
エラー 3 名前 'ExpandTabs' は現在のコンテキスト内に存在しません。
となるんです。
482:デフォルトの名無しさん
10/03/26 15:51:03
ああ・・・
失礼しました
sjis使わないので・・と思って頭の方全部すっとばしてみてませんでしたorz
483:デフォルトの名無しさん
10/03/26 15:57:11
しかし意味不明な言葉だ…
> サンプルソースのusing
484:デフォルトの名無しさん
10/03/26 16:41:26
コピペも満足にできないのはつらいな
485:デフォルトの名無しさん
10/03/26 19:38:17
URLリンク(msdn.microsoft.com)
のカレンダーで遊んでみようと思っています。
このプロジェクトを開くと、
Microsoft.Windows.Controlsと
Microsoft.Windows.Controls.Primitivesの参照が必要なので、
WPFToolkitをダウンロードし、参照を追加しました。
それでもMoonPhaseCalendar/MainWindow.xamlの、
<vsm:VisualStateManager.VisualStateGroups>
の行で、
アタッチ可能なプロパティVisualStateGroupsが、
型VisualStateManagerに見つかりませんでした。
とエラーになります。
これにはどう対処したらよいでしょうか?
486:デフォルトの名無しさん
10/03/26 21:07:29
WPFのデザイナにはよくあること
まず気にせず実行してみる
487:デフォルトの名無しさん
10/03/26 22:10:49
フォームのデザインを2種類、切り替えられるアプリケーションを作っています。
複数のフォームで値を共有するにはどういった方法が適切ですか?
今は1つのフォーム内(Form1.cs)に切り替えられるよう書いていますが、
デザイナが使えないのは何かとても間違っている気がします。
1つのコンポーネントを2つのフォームから参照できるとスマートだと思うのですが・・・
よろしくお願いします。
488:デフォルトの名無しさん
10/03/26 22:17:53
>>487
Document-Viewアーキテクチャだね。
Viewから保持するデータ(Document)を分離する。
もたせ方は、コンストラクタで渡そうがプロパティで引き渡そうが好きにすればいい。
それよりも、メインのフォームを切り替えるのがちょっと面倒そうだなー、と心配するかな。
489:デフォルトの名無しさん
10/03/26 22:35:56
>>488
ありがとうございます。
Document-Viewアーキテクチャを見ると、
「そのためにWPFがあるのです。」という空耳が聞こえます、気のせいですよね。
ご指摘の通り、そこで悩んでいます。
フォームの値をまとめた構造体Dataなどを作って、
Form2 a = new Form2();
a.Data = this.Data;
this.Close();
みたいにしてもいいのでしょうか?
490:デフォルトの名無しさん
10/03/26 22:39:22
>>489
だよね。
その書き方だと、this.Close()を呼び出した直後にProgram.csのMain関数が終わってしまう。
そこでMain関数内をループ構造にして、
Application.Runを複数回呼び出せるようにするとどうだろう。
そのタイミングでメインフォームを切り替えるとか。
491:デフォルトの名無しさん
10/03/26 22:49:32
WPFのコードビハインドとXAMLの関係は、物理的にビューとロジックを分けて
分業しましょうっていう考え方でDoc-Viewとは違うよ
XAMLはWinFormsのDesigner.cs相当で、コードビハインドとは別にXAMLだけを入れ替えるようなことはしない
そういうのはMVVMとかもっと高次の枠組みでやる
492:デフォルトの名無しさん
10/03/26 22:50:16
>>490
bool run = true;
while(run){
Application.Run(new Form1());
Application.Run(new From2());
}
どう・・・なんでしょう。
Program.csにData(Document)保存した方がいいような気もします。
493:デフォルトの名無しさん
10/03/26 22:55:01
>>491
ビューと"ロジック"なんですね。 参考になります。
WPFはスケッチブックと色鉛筆渡されたような気持ちになるので触る勇気がまだありません・・・。
ちなみに、Formは大学ノートとシャーペン。
494:デフォルトの名無しさん
10/03/26 22:56:57
ManageForm.Visible =false
495:デフォルトの名無しさん
10/03/26 22:59:11
ManageForm.Visible =true
496:デフォルトの名無しさん
10/03/26 22:59:36
>>494
メモリ×2
でも、それも手段の一つです。
497:デフォルトの名無しさん
10/03/26 22:59:39
>>489
そもそも「フォームの値」などというものが存在していることそれ自体がおかしい。
WPFとか関係ない。
聞いた感じクラスを使ったプログラミングが理解できてないようだから
まずそれを覚えないことには話にならないよ。
498:デフォルトの名無しさん
10/03/26 23:00:18
>>493
そこじゃないw
WPFでいうビューとロジックの分離っていうのは、デザインとコードをはっきり分離できていれば
デザインはデザイナが担当してコードはプログラマが書くという形で分業できるという考え方。
だからDoc-ViewやMVCでいうならXAMLもコードビハインドもViewに属する。
499:デフォルトの名無しさん
10/03/26 23:15:20
>>497
フィールドの受け渡し、と言うべきでしょうか。
500:デフォルトの名無しさん
10/03/26 23:17:30
言い直しても理解できてなけりゃ同じだろう
501:デフォルトの名無しさん
10/03/26 23:24:59
俺だったらフォーム分けないな
Panelか何かに配置して入れ替える
おそらくデザイナ使いたいからその辺を避けようとしてるのだろうけど
だったらUserControlでも継承すればいいんだよ
502:デフォルトの名無しさん
10/03/26 23:26:52
>>492
おかしなことせんとApplicationContext使えば?
503:デフォルトの名無しさん
10/03/26 23:39:01
>>501
>>502
ありがとうございます。
両方試してみます。
504:デフォルトの名無しさん
10/03/26 23:41:08
クラスライブラリ書くとき内部クラスにするの面倒くさいのでinternal使ってよいですか?
505:デフォルトの名無しさん
10/03/26 23:48:20
例えば
今日の朝生の出演者名簿から
今日の討論の流れをシュミレーションするには
どれぐらいの経験がひつようでしょうか?
506:デフォルトの名無しさん
10/03/27 00:20:58
>>501
その方法で解決できました。
ありがとうございます。
507:デフォルトの名無しさん
10/03/27 03:08:31
>>506
だろ
継承すればいいだろ
508:デフォルトの名無しさん
10/03/27 07:26:53
>>505
朝生視聴歴10年くらい
509:デフォルトの名無しさん
10/03/27 11:52:38
ネットの画像を保存する方法は?
タイマーとか使って一定時間ごとに自動的に保存するようなのを作りたいんだけど。
510:デフォルトの名無しさん
10/03/27 11:57:57
画像がJPEGとかなら、普通にダウンロード。
WebBrowserで取ってきて、キャプチャってのもありだね。
511:デフォルトの名無しさん
10/03/27 12:43:16
>>509
URLリンク(dobon.net)
ほい
512:デフォルトの名無しさん
10/03/27 15:42:11
C#にてWindowsフォームアプリケーションを作成しています。
DataGridViewを置き、
実際に内容が表示されている(値のある)行をクリックしたときはその行を選択状態にさせ
実際に内容が表示されていない下部の余白をクリックしたときは、選択状態を解除したいと考えているのですが、
余白をクリックしたことを検知するにはどのようなイベントを行えばよいのでしょうか。
よろしくお願いします。
513:デフォルトの名無しさん
10/03/27 15:43:24
HITTEST系のイベントなかったっけ?
514:デフォルトの名無しさん
10/03/27 15:46:29
>>512
欄外をクリックしてChange系イベントをもらったときに
選択中のindexを問い合せると-1が返ってきたりしない?
ListBoxではそういう動きをする。
515:デフォルトの名無しさん
10/03/27 15:55:19
そのものずばりの HitTest() メソッドがあるな。
516:デフォルトの名無しさん
10/03/27 17:33:14
あっそ
517:デフォルトの名無しさん
10/03/27 17:43:57
できた
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
if (dataGridView1.HitTest(e.X, e.Y).RowIndex < 0)
{
MessageBox.Show("hoge");
}
}
518:デフォルトの名無しさん
10/03/27 18:26:20
できたね
519:デフォルトの名無しさん
10/03/27 18:42:29
おめでとう。
520:デフォルトの名無しさん
10/03/27 18:45:50
Visual Studio C# Express Editionで、
フォームの入った.csをエディタでいじってフォーム部分を壊してしまったとき
なんとか復活させる方法ないでしょうか。
Express Editionのフォームデザイナが異常終了しちゃうんです。
ビルドはできるし、できあがったexeも実行出来るんですけど。
フォームデザイナだけ言う事聞いてくれない。
521:デフォルトの名無しさん
10/03/27 18:47:26
異常終了って何だよ? 赤いバッテンが出るとかか?
522:デフォルトの名無しさん
10/03/27 18:58:49
ソースのほうを直すしかない
523:デフォルトの名無しさん
10/03/27 19:05:55
exeから逆コンパイルすればいいのでは?
524:デフォルトの名無しさん
10/03/27 19:11:20
>>523
一言余計だ
525:デフォルトの名無しさん
10/03/27 19:15:04
何がやねん
526:デフォルトの名無しさん
10/03/27 19:34:25
せやな
527:デフォルトの名無しさん
10/03/27 19:42:22
これだから大阪民国人は・・・
528:デフォルトの名無しさん
10/03/27 19:50:42
せやせや
529:デフォルトの名無しさん
10/03/27 20:05:06
でんがなまんがな
530:デフォルトの名無しさん
10/03/27 20:26:11
日本人の97%は朝鮮人か中国人の直系
531:デフォルトの名無しさん
10/03/27 20:30:55
そういう言い方だと、朝鮮人とか中国人ってのも意味ないんだけどな。
532:デフォルトの名無しさん
10/03/27 20:36:43
全人類はアフリカの女性からだっけ?
全員はアフリカ人だな
533:デフォルトの名無しさん
10/03/27 21:11:33
>>521
うん。そう、それ。
Visual C#でエラーが発生したため終了します。
エラー報告を送信する しない
× データが失われる可能性を防ぐため、デザイナの読み込み前には以下のエラーを
解決する必要があります。
× オブジェクト参照がオブジェクトインスタンスに選定されていません。
534:デフォルトの名無しさん
10/03/27 21:17:26
ちょこちょこ直してくしかないんじゃないかなぁ。
535:デフォルトの名無しさん
10/03/27 21:39:12
初心者なんでどこがエラー原因なのかさっぱりわかりませんよー
536:デフォルトの名無しさん
10/03/27 21:42:03
じゃ、あきらめろ。
537:デフォルトの名無しさん
10/03/27 21:45:05
>>517
マウスでクリックしたときのイベントを書くとき、
MouseDown,MouseClick,Click,MouseUp
どれを使うのが適切なの?
イベントの発生順がちがうのは分かるけども、
どれか1つしか書かないときはどれが望ましいのか分からないっす
(-_-;);
538:デフォルトの名無しさん
10/03/27 21:46:39
クリックでいいじゃん
539:デフォルトの名無しさん
10/03/27 21:47:29
処理による。イベントによって取れる情報が違うし、タイミングが重要なこともあるからね。
540:デフォルトの名無しさん
10/03/27 22:00:13
>>533
実はVSのデザイナーはいろんな理由で落ちる不完全な代物なので、
そういうものだと思っておこう。
落ちた位置自体はレポートされてるから、
それを参考に修正する。大抵はコンストラクタ周り。
541:デフォルトの名無しさん
10/03/27 22:27:52
現在、.net Framework3.5で開発中です。
特定のディレクトリの配下すべてを
1つのファイルにバックアップ・リストアする機能を作成しています。
(イメージ的には、zip圧縮と解凍)
圧縮はSystem.IO.Packageのクラスでどうにかできたのですが、
解凍がうまくいきません。
今やっている考え方は、
packgeのオープン→ファイルパス取得→取得したファイルパスからファイルをコピー
の流れで、パス取得とコピーを繰り返している状態です。
なぜかコピーできるファイルとコピーできないファイルが存在していて困っています。
なお、ソースで圧縮したzipファイルは、laplusで解凍、ファイルが適切に存在していることを確認しています。
誰か理由を知っていますか?
また、代替案をご存知ですか?
#J#のライブラリによる圧縮・解凍や、フリーのライブラリを利用することは現状考えていません。
よろしくお願いします。
542:デフォルトの名無しさん
10/03/27 22:29:46
オセロの盤面のようなものを描きマウスクリックする事で
左1右3とマス目を取得するプログラムを作りたいのですが
参考になるサイトなどがあったら教えてください
543:デフォルトの名無しさん
10/03/27 22:30:27
すみません 左1上3でした
544:デフォルトの名無しさん
10/03/27 22:32:24
>>541
System.IO.Packagingはzipファイル作るためのライブラリじゃないよ
Open Packaging Conventions、つまりxpsとかのためのパッケージ仕様
545:デフォルトの名無しさん
10/03/27 22:34:16
>>541
そもそも ZIP 用ってわけじゃないので、ダメかも知らんね。
まっとうなライブラリ使った方が早いと思うよ。
>>542
たかだか 64マスなんだから、PictrueBoxとか配置しちゃうってのもひとつの手。
546:デフォルトの名無しさん
10/03/27 22:37:03
>>542
void form_MouseUp(object sender, MouseEventArgs e) {
int x = e.X / マス目の幅;
int y = e.Y / マス目の高さ;
}
547:デフォルトの名無しさん
10/03/27 22:39:29
>>544
回答ありがとうございます。
Open Packaging Conventions用のクラスだというのは承知です。
固定のアプリからの圧縮・解凍ができればおkらしいです。
本当ならJ#のライブラリを使ったら簡単というのはわかるのですが、
いかんせん仕様上使わない方向らしいです。
もし完全に無理なら仕様変更を訴えてみます。
548:デフォルトの名無しさん
10/03/27 22:41:40
その仕様を決めた奴に聞けよ。
549:デフォルトの名無しさん
10/03/27 22:43:03
>>545
回答ありがとうございます。
やっぱり無理そうですか…。
まっとうなライブラリとはどんなライブラリですか?
550:デフォルトの名無しさん
10/03/27 22:43:36
GZipStreamでも使って独自フォーマットでまとめて突っ込めばいいじゃん
ヘッダにファイル名とサイズさえ書き込んでおけば充分だろ
551:デフォルトの名無しさん
10/03/27 22:44:44
>>548
仕様を決めた人は、C#を知らないわけでorz。
無理なら無理と言い切りたいのですが、圧縮だけはできてしまったので困った次第です。
552:デフォルトの名無しさん
10/03/27 22:44:51
7zip
553:デフォルトの名無しさん
10/03/27 22:45:46
GZipStreamは単一ファイルにしか使えないからないわ。
>>549
フリーのライブラリがいろいろ転がってるだろ?
サポート云々とか言うなら、PkZipのがいいな。
554:デフォルトの名無しさん
10/03/27 22:47:15
仕様を決めたやつがC#知らないんだったら、「これじゃできません」って言っても
否定はされないだろ。
555:デフォルトの名無しさん
10/03/27 22:47:28
サポートとか無くていいならこれおすすめ
URLリンク(dotnetzip.codeplex.com)
pureC#で使いやすい
556:541
10/03/27 22:51:09
1人1人に返すのが大変なので一括で。
初め、GZipStreamも考えたのですが、
・必須仕様
→アプリ上で圧縮・解凍が可能。
・推奨仕様
→アプリ外でも解凍可能。
という感じだったので、却下した次第です。
あと、フリーのライブラリも検索で引っかかってたのですが、
商用利用のために怖いと上の人間に言われて却下状態です。
無理ぽなら、月曜にでも理由を言って、改善案を作ってもらいます。
557:デフォルトの名無しさん
10/03/27 23:00:28
zlibでもP/Invokeしてきて使えば
いくらフリーといってもさすがにzlibを信用できないなら何も使えないでしょ
558:デフォルトの名無しさん
10/03/27 23:00:40
あの…ここ…初心者用…
559:デフォルトの名無しさん
10/03/27 23:04:41
>>556
プログラムの安定性は実績で決まるのであって、
商用かオープンソースなのかは全然関係ないんだけどな。
オレはアーカイブ内のファイル構成はSQLiteで外部で管理してるよ。
データファイル側はただ単に暗号化して連結してるだけ。
560:デフォルトの名無しさん
10/03/27 23:07:06
怖いのは安定性じゃなくてライセンスだと思うよ、多分
561:541
10/03/27 23:07:51
>>557
了解です。
zlibも検討します。
>>558
知ってるか?
俺はC#はじめてまだ5ヶ月だから初心者なんだぜ。
562:デフォルトの名無しさん
10/03/27 23:09:22
>>553
ちゃんとzip用のヘッダさえ書いてやれば、
ファイル一つ一つの圧縮はGZipStream使ってもれっきとしたzipファイルが作れるんだぜ
563:デフォルトの名無しさん
10/03/27 23:09:25
>>560
ああ、ライセンスね。そのライブラリは調べてなかったな……。
って、Ms-PLじゃねえか!
.NETの世界で一番有名なオープンソースライセンスなのに、
怖いとかモグリだろ。
564:541
10/03/27 23:10:14
>>560
そういうこと。
できたらおkじゃないところが痛い。
565:デフォルトの名無しさん
10/03/27 23:11:26
まあオープンソース=GPL汚染というのはやはり根強い印象があるよねー
566:デフォルトの名無しさん
10/03/27 23:12:59
>>555のようなMS-PLなら全く問題ないだろ
最近のMSのサンプルやMSがオープンソースで公開してるライブラリもほとんどMS-PL
567:デフォルトの名無しさん
10/03/27 23:16:21
C#すげーな
568:541
10/03/27 23:16:46
みなさんいろいろありがとう。
とりあえず結論としては、
・標準ライブラリはやめとけ。
・dotnetzipができるならいい。
・ダメならzlibでどうにかする。
・それでも無理ならあきらめろ。
でおk?
569:デフォルトの名無しさん
10/03/27 23:18:47
まあ自作しろって言われるのがオチだな
570:デフォルトの名無しさん
10/03/27 23:20:17
PKとかのライブラリ買え、ってのが抜けてる。
571:デフォルトの名無しさん
10/03/27 23:20:19
.NET4では大量のMS-PL由来のライブラリが本家.NETに統合されるよ
WPFの新しいコントロールとかDLRとかMEFとか新機能の多くがMS-PL
572:デフォルトの名無しさん
10/03/27 23:22:20
deflateの自作は重すぎ。
573:デフォルトの名無しさん
10/03/27 23:23:06
>>568
541が使用している標準ライブラリは必ずしも選択は間違ってないけど、使い方がおそらく間違っている。
dotnetzipで問題ないだろうけどこのスレのやつが実際に確かめたわけではないので、自分で調べて考えろ。
574:541
10/03/27 23:26:56
とりあえず、自作する方向でも、一度上の人と相談します。
>>573の言うとおり、使い方が間違っている可能性もあるのでそれも含めつつ。
ダメなら即効白旗揚げて、対策考えてもらいます。
ありがとうございました。
575:デフォルトの名無しさん
10/03/27 23:29:24
あのよ、コスト考えろよ。ZIP圧縮・解凍ライブラリなんて自作してたら、
どんだけ時間かかると思ってんだよ。
576:デフォルトの名無しさん
10/03/27 23:31:33
当該アプリで圧縮したものは、他のアプリでも伸張できるけど、
当該アプリで伸張できるのは、当該アプリで圧縮したものだけ
という仕様でよければ、自分で実装するのも然程困難ではない
577:デフォルトの名無しさん
10/03/27 23:36:10
そんな実装するくらいなら、BSDライセンスのライブラリでも探すわw
578:デフォルトの名無しさん
10/03/27 23:38:24
そんなロクにテストもしてない実績もない
バグだらけの糞自作ライブラリなんかそれこそ怖くて使いたくないわ
579:デフォルトの名無しさん
10/03/27 23:38:58
>>540
あれ、レポートされてたっけ。
また今度じっくり向きあってみます。
自分が組み上げたコードじゃなく引き継いだものなので、
どこがどーなってるかさっぱりなんですがねw
580:デフォルトの名無しさん
10/03/27 23:40:47
誤解されそうなので補足しとくけど>>578は拾ってきたライブラリを使うんじゃなくて
自分で実装する場合の話ね
581:デフォルトの名無しさん
10/03/27 23:42:50
よく「設計した人から言われたんで」みたいなこと言うやついるけど、
きちっと筋道建てて論破できない時点で、そいつも同罪。
582:デフォルトの名無しさん
10/03/27 23:42:56
>>576
作るのは簡単だが、世間並の圧縮率にするのと、バグがほとんどないと思えるレベルの安定性にするのが大変
583:デフォルトの名無しさん
10/03/28 02:44:06
Ms-PLのdotnetzipはどう使えばいいの?
黙って実装しても問題にならないの?
584:デフォルトの名無しさん
10/03/28 03:13:13
オレは業務でZIP書庫作る必要があって、結局は自前でやったなぁ
実データはDeflateStreamで済むしヘッダだけ実装すればいいだけだよ
585:デフォルトの名無しさん
10/03/28 03:22:29
シェアード ソース ライセンス
URLリンク(www.microsoft.com)
商用アプリに利用して一緒にバイナリを配布してもOK。詳しくはライセンス原文を参照してくれ。
586:デフォルトの名無しさん
10/03/28 04:28:12
.NET界隈はわりと自由なライセンスが普及してて良い
587:デフォルトの名無しさん
10/03/28 04:29:33
>>586
隠したくても隠せないしねw
588:デフォルトの名無しさん
10/03/28 04:40:44
まぁ、使っていいって言ってくれてるんだから隠す必要はないな。
ライセンスで認められた範囲で堂々と使うといい。
589:デフォルトの名無しさん
10/03/28 05:17:35
許諾者は、著作権、特許権、商標、またはその他の形式の出所をコード内に常に示しておく必要があります
ここがよくわからないんだけど、結局配布する場合どうすればいいの?
590:デフォルトの名無しさん
10/03/28 09:51:03
URLリンク(www.microsoft.com)
今はこっち
>本ソフトウェアに含まれるすべての著作権…の表示を維持する必要があります。
だから元々そういう表示が含まれている場合は消すなってことだろう
591:デフォルトの名無しさん
10/03/28 10:23:35
>>587
隠す方法はいろいろある。ネイティブにもできる。
592:デフォルトの名無しさん
10/03/28 10:36:10
流れを読まずに質問です。
C#で使えるコントロールのライブラリってないでしょうか?
・ゲージやメーター
・Officeっぽい、Vistaっぽいコントロールのスキン表示
・スキン機能
こんな機能があるライブラリがあれば名前だけでもいいので教えてください。
商用ではいくらでもあるのですがライセンス料が高すぎるのでできればオープンソース
のライブラリを教えて頂ければと思います。
日本語・英語は問いませんが、日本語を使用しても問題のない方が望ましいです。
注文だらけですが、もし知っておられる方がいましたらお願いいたします。
593:デフォルトの名無しさん
10/03/28 10:36:58
WPF
594:デフォルトの名無しさん
10/03/28 11:02:22
いやWPFはNFW3.5以降ということなので、NFW2.0以降で使用できるライブラリを
お願いします。
というか最初に言い忘れてました、ごめんなさい
595:デフォルトの名無しさん
10/03/28 11:06:23
NFWって略は初めて見たかもしれない
596:デフォルトの名無しさん
10/03/28 11:17:50
聞いたことないな
.NETのオープンソースが盛り上がりだしたのって最近MSがオープンソースに積極的になってからだからな
WPF使えば一瞬でできる報われないことをわざわざやる人もいないだろ
597:デフォルトの名無しさん
10/03/28 11:40:38
いやNFW3.5にするとWin2000を切り捨てざるを得なくなるので、それを避けたいだけなのです。
フリーではライブラリはないか、または聞いたことがないぐらいマイナーということですね。
昔はいくつかあったみたいですが、今はすべて商用に変わっていてがっくりですorz
598:デフォルトの名無しさん
10/03/28 11:46:22
2000は切り捨ててもいいのよ
599:デフォルトの名無しさん
10/03/28 11:52:05
UIだけActiveXでHTMLやSilverlightベースにしてしまえ
600:デフォルトの名無しさん
10/03/28 11:58:59
jQueryがあるじゃないか
601:デフォルトの名無しさん
10/03/28 12:32:27
ふーん
602:デフォルトの名無しさん
10/03/28 12:57:25
はーん
603:デフォルトの名無しさん
10/03/28 13:37:09
10年前のOSだもんなあ。
IE6も10年前でみんな葬り去りたくてウズウズしてるんだから、2000も葬っていいわな。
604:デフォルトの名無しさん
10/03/28 13:40:24
2000のSP4は、7月にサポート切れだったろ。
そのタイミングで俺的には終了だな。
605:デフォルトの名無しさん
10/03/28 14:25:57
MSだけじゃなくて開発側も古いWindowsサポートって頭があるからな
切っちゃっていいでしょっていうか切っていこうよ。.netなら尚更
606:デフォルトの名無しさん
10/03/28 14:29:06
逆にMSがサポートしないものを「サポートします!」とか、
すごい勇気だなぁ、って思いますよw
607:デフォルトの名無しさん
10/03/28 14:36:27
>>592
RoboFormとか、skinstudioかねぇ?
後者はDirectX用だからやや違うかもしれないけど。
他は皆がレスしてるようにWPF自体がスキン機能そのものの(機能とデザインの分離)だから
それを使うのが一番の王道だな。
608:デフォルトの名無しさん
10/03/28 14:36:45
MSじゃないどこかの企業がそれを大々的にするって言ってたな。
609:デフォルトの名無しさん
10/03/28 14:40:42
DevExpress .NET Windows Forms Skinning Library
SPREAD for .NET Windows Forms Edition
AppStylist for Windows Forms
ぐぐったら色々あるみたいね。もちろん、みんな商用プロダクトだが。
610:デフォルトの名無しさん
10/03/28 14:41:33
スキン突っ立ってオーナードローするだけ出しな
そんなに手間じゃないだろ
611:デフォルトの名無しさん
10/03/28 14:42:28
十分手間だろ
一つやったら全部やらないと空気読めてない感じになる
612:デフォルトの名無しさん
10/03/28 14:42:38
SPREADは違うだろ。
613:デフォルトの名無しさん
10/03/28 14:52:17
とりあえず、オープンソースの範囲ではこんなのがあった。
URLリンク(weys.codeplex.com)
UIのカスタマイズと言うよりか、Windows Media Playerのスキンっぽい感じだな。
614:デフォルトの名無しさん
10/03/28 16:00:47
みなさん、いろいろとありがとうございます。
私が今開発しているのはとあるゲームなのですが、それがWin2000以降に対応していたもので
Win2000ユーザーを切り捨てるのもどうかと考えてたのです。
数年前ならコントロールのライブラリも意味があったかもしれませんが、今ではWPFが一番
いいみたいですね。
WPF検討してみます。
しかし、日本語だと書籍はないですね...
いろいろとありがとうございました。
615:デフォルトの名無しさん
10/03/28 16:18:49
WPFならXPの古いマシンは切り捨てることになるよ
まあゲームなら問題ないな
616:デフォルトの名無しさん
10/03/28 16:35:08
配列に条件によって値を入れたいと思います。
(1) int[] table = {01, 0, 120, 270};
(2) int[] table = {02, 0, 180, 90};
と2種類の値を入れたいとします。
(1)の場合の条件と、(2)の場合の条件が違う場合、
if(条件) int[] table = {01, 0, 120, 270};
else if (条件) int[] table = {02, 0, 180, 90};
//以下tableを使った処理。
とすると、処理をするところで、
tableがないとエラーになります。
int[] table;
if(条件) table = {01, 0, 120, 270};
else if (条件) table = {02, 0, 180, 90};
//以下tableを使った処理。
とすると、この書き方ではだめだと、大量にエラーになります。
配列の書き方という基本的なことなのですが、書けずに悩んでいます。
アドバイスお願いします。
617:デフォルトの名無しさん
10/03/28 16:37:17
>>615
ちょっとそれ詳しくお願いします。
要求スペックが高いから古いマシンでは駄目
XP SP3以降じゃないと駄目
という意味ですか?
618:デフォルトの名無しさん
10/03/28 16:37:19
>>616
そりゃあ、その2箇所を通過してしまうような条件が残ってるからだ。
当たり前のことじゃないか。
619:デフォルトの名無しさん
10/03/28 16:37:58
素直にnew int書くだけでいいと思うの
620:デフォルトの名無しさん
10/03/28 16:38:26
int[] table;
これはifの前に宣言だけして
table = new int[]{02, 0, 180, 90};
とかでできない?
621:デフォルトの名無しさん
10/03/28 16:41:40
>>617
前者
どんな環境でも動くことは動くけどバリバリのDirect3Dで描画されてるから
ハードウェアアクセラレーションが十分に効かない環境では厳しい
622:デフォルトの名無しさん
10/03/28 16:44:30
>>616
これで一応エラーでないけどコメントの箇所何かいれないと何も設定されない条件ができないか?
URLリンク(ideone.com)
623:デフォルトの名無しさん
10/03/28 16:44:41
>>616
int[] table = null;
にするか
if()
~~
else
~~
とするか
お好きなのをどうぞ
624:デフォルトの名無しさん
10/03/28 16:46:13
>>621
回答ありがとうございます。
なるほど、やはりそのような理由ですか。
了解しました。
スレチなのでWPFのことは別スレで聞いてみたいと思います。
みなさん、いろいろとありがとうございました。
625:デフォルトの名無しさん
10/03/28 16:47:21
>>620
new int[]でできました。
ありがとうございました。
これをつけるのとつけないのとでは、どう意味が違うんですか?
626:デフォルトの名無しさん
10/03/28 16:50:23
>>625
いろいろ短縮したのが
table = new int[]{01, 0, 120, 270};
これね
長くかくと
table = new int[4];
int[0] = 01;
int[1] = 0;
int[2] = 120;
int[3] = 270;
こうなる
627:デフォルトの名無しさん
10/03/28 16:50:50
>>625
アホか。エラーメッセージに全部書いてあるだろ。
628:デフォルトの名無しさん
10/03/28 16:53:15
ああああああ
間違えた
table = new int[4];
table[0] = 1;
table[1] = 0;
table[2] = 120;
table[3] = 270;
629:デフォルトの名無しさん
10/03/28 16:57:27
table = new int[]{01, 0, 120, 270};
こうやって書くメリット?は
table = new int[4];
table[0] = 1;
table[1] = 0;
table[2] = 120;
table[3] = 270;
この配列に
table[4] = 100;
とか増やしたい場合は
table = new int[4];
これを
table = new int[5];
としないといけないけど
table = new int[]{01, 0, 120, 270,100};
こうするだけで{}で囲った中の要素分だけ勝手に配列を確保してくれる。
数を知りたければ配列の場合.Lengthでわかるはず
630:デフォルトの名無しさん
10/03/28 17:05:07
>>590
こっちはまだわかりやすいね
訳が適当だとどうにでも解釈できるよな
631:デフォルトの名無しさん
10/03/28 17:11:45
>>616
普通にこれだけでいける
table=new []{0,1,2,3,4}
632:デフォルトの名無しさん
10/03/28 21:49:36
>>631
アホか。
633:デフォルトの名無しさん
10/03/28 23:50:29
配列なんて使わずArrayList使おうよ
634:デフォルトの名無しさん
10/03/28 23:51:52
intの配列の初期化がまともにできないレベルだからなあ
もうちょい先だろ
635:デフォルトの名無しさん
10/03/28 23:53:00
うひゃあうひゃあ
配列とか扱うのはメモリ効率悪いwww
636:デフォルトの名無しさん
10/03/29 00:08:06
男なら配列なんか使うな!
637:デフォルトの名無しさん
10/03/29 00:13:42
いまどき配列を嫌う男の人って…
638:デフォルトの名無しさん
10/03/29 00:28:06
大した弊害なくて使えるなら何だって良いさ
639:デフォルトの名無しさん
10/03/29 00:34:17
ですね
640:デフォルトの名無しさん
10/03/29 03:59:41
volatile の効果が実感できるソースコードの例は無いでしょうか?
簡単なコードでは実感できないような修飾子なのでしょうか。
641:デフォルトの名無しさん
10/03/29 06:16:01
無理
642:デフォルトの名無しさん
10/03/29 06:19:56
そもそも初心者には使う必要のない修飾子
643:デフォルトの名無しさん
10/03/29 06:39:07
VSの設定保存機能って使ってる?
ビルドしたらなんとか.exe.configとかいう名前で生成されるやつ。
自分で用意してるから使わないんだけど、生成させないようにするのはどうするの?
644:デフォルトの名無しさん
10/03/29 06:47:40
App.configを消せばいい。
645:デフォルトの名無しさん
10/03/29 06:51:00
>>644
おー、サンクス。さっそく除外しとこう。
646:デフォルトの名無しさん
10/03/29 09:13:16
ArrayListって内部的にリスト構造なの?
Listとどう違うの?
リスト構造だとインデクサ[]は使えるとしてもアクセス効率
が悪いと思うけど
647:デフォルトの名無しさん
10/03/29 09:18:19
>>646
いや配列
配列の容量あふれると別の容量大きめの配列作ってコピーするから時々追加にO(n)かかる
ArrayListはList<object>だった気がするなぁ~
使わないから覚えてない…
648:デフォルトの名無しさん
10/03/29 09:20:00
ListはArrayListのGenericだから比べるところじゃないだろう
ListとArrayListの中身は配列
>ArrayList は、null 参照 (Visual Basic では Nothing) を有効な値として受け取り、要素の重複を許可します。
>Count が既に Capacity に等しい場合には、内部配列を自動的に再割り当てすることにより ArrayList の容量が増加し、新しい要素を追加する前に既存の要素は新しい配列にコピーされます。
>Count が Capacity より小さい場合、このメソッドは O(1) 操作になります。新しい要素を格納するために容量を増やす必要がある場合、このメソッドは O(n) 操作になります。ここで、n は Count です。
649:デフォルトの名無しさん
10/03/29 09:21:07
ArrayListは過去の遺物。要素がobjectの場合でもList<object>を使った方がいい。
Silverlightでは切り捨てられた。
650:デフォルトの名無しさん
10/03/29 10:13:51
ありがとう。Listという言葉が紛らわしいですね。
C#の参考書を見ると、Windows GUIが簡単にできそう。
MFCを整理してより使い易くしているかんじ。
C++のMFCを勉強してきたけど、きっぱりとあきらめて
C#で作り直した方が早いと思う。
651:デフォルトの名無しさん
10/03/29 10:47:41
ArrayListやHashtableって実装をさらけ出した悪い名前だと思う
652:デフォルトの名無しさん
10/03/29 10:54:34
そこがメリット
653:デフォルトの名無しさん
10/03/29 10:58:07
Java由来の名前だが、実装を示唆するような名前でないと速度の見積もりができないので、あれはあれでよい。
654:デフォルトの名無しさん
10/03/29 11:01:25
>>650
MFCを使ってる人がまだいたことに驚いた
655:デフォルトの名無しさん
10/03/29 11:05:19
listといえばリンクリストを指すのは悪い慣習だな
.NETではインデックスでアクセスできるものをlistと呼ぶ
LinkedListもListと付いてるけどIListを実装してない
656:デフォルトの名無しさん
10/03/29 12:24:01
WPFのC#のコードビハインドでのウィンドウサイズの指定方法を教えてください。
xamlでは、
<Window Height="400" Width="400">
と指定します。
FormのC#では、
this.ClientSize = new System.Drawing.Size(1173, 861);
のようにできます。
WPFのC#の場合がわかりません。
Windowssize = new System.Drawing.Size(1173, 861);
としてみたところ、System.Windows.Window.Windowsizeはアクセスできない保護レベルになっています、
と表示されています。
どこで保護レベルを変更すればよいでしょう?
よろしくお願いします。
657:デフォルトの名無しさん
10/03/29 12:25:00
保護レベル変更は無理
658:デフォルトの名無しさん
10/03/29 12:26:55
this.Width = 1173;
this.Height = 861;
これだけ
それとWPFでSystem.Drawingは使うな
659:デフォルトの名無しさん
10/03/29 12:27:07
>>657
やりたいことはウィンドウサイズの変更なので、
ウィンドウサイズを変更できればよいです。
660:デフォルトの名無しさん
10/03/29 12:29:59
>>658
ありがとうございました。できました。感謝です。
661:デフォルトの名無しさん
10/03/29 17:27:28
>>660
また俺が回答してやるよ
どーんとこい!
662:デフォルトの名無しさん
10/03/29 18:34:08
いや俺が回答した
663:デフォルトの名無しさん
10/03/29 18:40:04
いやいや俺が
664:デフォルトの名無しさん
10/03/29 19:08:57
あ、じゃあ
俺がやったよ
665:デフォルトの名無しさん
10/03/29 20:47:38
質問
現在、C言語で書かれたDLLが提供する関数を
C#から呼び出そうとしています。
悩んでるが、「引数に構造体の配列を持つ関数」の処理です。
下記URLにソースコードを張りました
URLリンク(codepad.org)
上でいう所のC側の「//<- ここで落ちる」というコメントのある所で不正アクセスで落ちてしまいます。
(stSample[0]に値が入ってるのは確認できました)
C#側の構造体の渡し方がおかしいとかなと思ってるのですが、
どこがおかしいのか分からず・・・。
ご存知の方いましたら、教えて下さい。
666:デフォルトの名無しさん
10/03/29 20:52:16
public struct ST_SAMPLEDLL {
public byte cCount;
public fixed byte strBuff[256];
}
こうじゃね
667:デフォルトの名無しさん
10/03/29 21:18:54
文字列にしてそれを渡してパースしてぶっこめば楽だな
668:デフォルトの名無しさん
10/03/29 21:35:23
教えてください。
マルチスレッドを利用したプログラムがあります。
このスレッドのうち1本で、ローカルファイルにデータを出力する処理があり、そのファイル名を
ファイル選択ダイアログ(System.Widows.Forms.SaveFileDialog)を利用して求めることにしたいと思います。
実際にプログラムを組んで実行すると、ShowDialog() を実行する箇所でエラー終了します。
メッセージボックスに表示されるエラーの内容は以下の通りです。
>OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。
main 関数には STAThread の設定もしてあります。(元からついているようですが)
同じプログラムで、main 関数を実行したスレッド(以下、メインスレッドと記述します)でダイアログを表示すると正常に使用できます。
また、メインスレッドで開けばいいのかと、メインスレッドで表示しているフォームに Invoke を掛けて
ダイアログを表示すると正常に使用‥‥出来るのですが、このフォームは最小化&非表示にしているため
この状態でダイアログを表示しようとしても画面には出てきません。
メインスレッド以外からファイル選択ダイアログを正常に開く方法はないでしょうか。
669:デフォルトの名無しさん
10/03/29 21:44:03
UIスレッド以外から操作すんなよ。
670:デフォルトの名無しさん
10/03/29 21:45:43
ダイアログに見せかけたFormじゃだめなの?
671:デフォルトの名無しさん
10/03/29 21:49:18
メインスレッド側でAPIで呼べばいいんじゃね?
672:デフォルトの名無しさん
10/03/29 21:50:38
あー、Thread.SetApartmentStateってのがあってだね
673:デフォルトの名無しさん
10/03/29 21:50:49
一応、Thread.TrySetApartmentState メソッド ってのはあるけどな・・・。
674:デフォルトの名無しさん
10/03/29 21:52:26
>>669-671
この3人にtaskkillしてあげてください
675:デフォルトの名無しさん
10/03/29 21:53:44
ひどい赤っ恥だ
676:デフォルトの名無しさん
10/03/29 21:56:37
メインのUIスレッド以外からUIいじるのはお勧めできないけどな。
677:デフォルトの名無しさん
10/03/29 21:58:40
>>674
何でtaskkillなんだよ
>ダイアログを表示すると正常に使用‥‥出来るのですが、このフォームは最小化&非表示にしているため
>この状態でダイアログを表示しようとしても画面には出てきません。
ダイアログで出ないとかいうからダイアログに見せかけたForm表示しろっていっただけ
オーナーとの関係で表示がされないだけだろ
678:デフォルトの名無しさん
10/03/29 21:59:11
そのスレッドは自分で作ったスレッド?
それともスレッドプールのスレッド?
自分で作ったスレッドなら、差し支えなければ自分でSTAに設定すればいい(Start前しかできないよ)
もしスレッドプールとかなら、これはMTAから変更することはできない。
汚いけど、必要な部分で自分でスレッド作って、STAに設定してメッセージボックス表示、
元のスレッドでは新しいスレッドを勝ち合わせとかするしかないと思う。
最初からUIスレッドにIncvokeする方が無駄はないけど。
679:デフォルトの名無しさん
10/03/29 22:01:42
そもそもSTAとかMTAって何なの
680:デフォルトの名無しさん
10/03/29 22:02:56
ようやくシンプルだけどまともに動くものが作れるようになってきたけど
未だにマルチスレッドとかよくわからないな
>>679も何のことやら
681:デフォルトの名無しさん
10/03/29 22:05:41
Inside OLE2 嫁。
682:デフォルトの名無しさん
10/03/29 22:09:36
>>681
それ絶版じゃなかったっけ。
683:デフォルトの名無しさん
10/03/29 22:10:41
うん。
684:デフォルトの名無しさん
10/03/29 22:11:22
>STAとかMTA
VC++でATL使ってIEコンポーネント触ったときにちょっとかじった程度だな
ナビゲーション関連がこの辺を理解してないとメッセージが来ないとかなんとか
685:デフォルトの名無しさん
10/03/29 22:24:31
うん。
686:668
10/03/29 22:26:02
みなさん、ありがとうございます。
てか、はやっ。w
>>670
無知ですみません。
ダイアログに見せかけたフォームというのは、Form を継承したファイル選択ダイアログの
ようなフォームクラスを自分で作る、と言うことでしょうか。
だとすると、今回は遠慮できたらいいかな、と。すみません。
>>671
いまの状況からは少し難しく。すみません。
>>678
System.Threading.Thread を利用して自分で作ったスレッドです。
やっとエラーメッセージの意味がわかりました。
あれは必ずしも main 関数でやれってことではなくて、ダイアログを操作するスレッドに
STA を設定しろってことなんですね。
>>672 や >>673 さんの仰ってる方法で出来ると理解しました。明日、確認します。
>>669,676
自分も UI スレッド(この言葉を忘れていました)以外で UI の操作を行うのには抵抗があったのですが。
‥‥気をつけておきます。
687:デフォルトの名無しさん
10/03/29 22:27:30
>>686
わかればよろしい
今後も精進しなさい
688:デフォルトの名無しさん
10/03/29 22:28:10
偉そうに
689:665
10/03/29 22:32:50
>>666
レスサンクス。
バッファの取り方がまずいという事ですか。
今手元に環境がないので試せないですが、
明日試してみます。
良いサイトか何かあれば、いいんですが、
なかなか見つからず・・・orz
ちなみに、環境は
XP,VC# 2008Express
(書き忘れました)
690:デフォルトの名無しさん
10/03/29 22:37:59
バッファの取り方でなくて、C#とCの型の違い。
691:665
10/03/29 22:42:37
>>690
サンクス
それで、最初の構造体はアクセスできるけど(たまたま出来てるように見えてるだけ?)、
次の構造体にアクセスしようとしたら落ちると・・・。
692:デフォルトの名無しさん
10/03/29 22:46:49
型の制約があるものより汎用的なテキストでやり取りする方が無難かもねえ
相談かこっちか忘れたけど以前同じようなdllを呼び出すアプリの相談で
httpでやり取りする形にしてみたら?ってのがあったな
693:デフォルトの名無しさん
10/03/29 22:52:56
>>691
よく見たらST_SAMPLE**だったのか
C#側の引数の型をIntPtr[]にしてそれぞれポインタの参照先に
ST_SAMPLEDLL一つ分のメモリを割り当てておかないと
694:デフォルトの名無しさん
10/03/29 22:53:47
バイト配列が一番わかりやすいよ。
695:665
10/03/29 22:58:22
>>692
時間がたっぷりあって、許されるなら、DLLをC++か何かで
書き換えたいところですが、そうもいかず・・・。
このインターフェースは我慢するしかないですね。
>>693
です。ダブルポインタです。
そこなのですが
URLリンク(codepad.org)
このサイトに張ったソースの37行目でDLLに渡すメモリの実態自体は用意しているので、
大丈夫かと思ってたのですが、それとは別に確保するという事ですか?
あと、宣言は、こっちの方がいいってことですね。
[System.Runtime.InteropServices.DllImport("MY_Dll.dll", EntryPoint = "test")]
unsafe public static extern int test_call( IntPtr[] pstList);
696:デフォルトの名無しさん
10/03/29 23:00:44
IntPtrのみでいいはずだけどな。
Cでは、基本的に配列はメモリ上に整列するし。
697:デフォルトの名無しさん
10/03/29 23:04:37
ダブルポインタだからポインタの配列を渡さないといけない(だからIntPtr[])
しかもC側でポインタの参照先にアクセスしてるから予めそれぞれ実体を割り当てとかないと
698:デフォルトの名無しさん
10/03/29 23:11:52
配列はポインタで受けれるけど、ってやつか。
699:デフォルトの名無しさん
10/03/29 23:12:03
>>696
私もそう思ってて、そこではまってます。。
>>697
>しかもC側でポインタの参照先にアクセスしてるから予めそれぞれ実体を割り当てとかないと
そこなのですが、
testPtr1 = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(ST_SAMPLEDLL)) * (int)10);
これで、領域を確保して、
次に
test_call(testPtr1);
渡してるので、少なくとも構造体ST_SAMPLEDLLを10個分はメモリとして
確保してると思ってますが、この処理のほかに必要とうい事でしょうか?
その後、取れたのをMarshal.PtrToStructure()で取り出す処理になってます。