ふらっとC#,C♯,C#(初心者用) Part44at TECH
ふらっとC#,C♯,C#(初心者用) Part44 - 暇つぶし2ch800:デフォルトの名無しさん
09/09/14 14:10:32
どうしてたった数レスが目に入らないんだろう…

801:デフォルトの名無しさん
09/09/14 14:37:37
教えたがりだから。

802:デフォルトの名無しさん
09/09/14 14:37:42
>>791
>>796で行けたよ。
ただし、Typeは1で、中身はUnicodeだから
Encoding.ASCII.GetStringからEncoding.Unicode.GetStringに変更
ちなみにコメントのIdは0x9c9cらしい

803:デフォルトの名無しさん
09/09/14 18:05:19
Directory.GetDirectoriesについての質問失礼します

ドライブ内のすべてディレクトリを対象にディレクトリ名で検索したいです。
そこで、Directory.GetDirectoriesの第二引数でAllDirectoriesを指定するという方法でとりあえず作成してみました。

このプログラムは一応正常に動作しているのですが、「C:」ドライブのすべてのディレクトリを検索させようとすると
「System Volume Informationのアクセス権がない」といったエラーが出て止まってしまいます。
「System Volume Information」の中身は検索対象に含めるつもりはないのでスキップしたいのですがその方法がわかりません。

AllDirectoriesを使わずに自前で再起処理などで検索していくしかないのでしょうか
どうかご指導お願いいたします。

804:デフォルトの名無しさん
09/09/14 18:14:40
うんそう諦めて

805:デフォルトの名無しさん
09/09/14 20:09:56
もし自分に「Program Files」とか見る権限がないばあいはエラーキャッチでスルー

806:デフォルトの名無しさん
09/09/14 22:34:47
>>804
そうですか…。

>>805
それも考えたのですがキャッチ後にそのまま続行する方法がわかりません
ネットで調べたところVBにはCatch ex As Exceptionというのがあるそうなのですが
C#でもそれと同じようなことができるのですか?

807:デフォルトの名無しさん
09/09/14 22:36:38
なんでヘルプ読まないの?

808:デフォルトの名無しさん
09/09/14 23:41:05
これはひどい

809:デフォルトの名無しさん
09/09/14 23:56:04
>>806
プログラム向いてないから畑でも耕してろボケナス
罵られてもなお続けたいなら↓読め

例外処理ステートメント (C# リファレンス)
URLリンク(msdn.microsoft.com)

あとこれも全部読め
URLリンク(msdn.microsoft.com)

810:デフォルトの名無しさん
09/09/15 00:01:26
キャッチスルーと書いたけど、そんなのかっこよくない。
だいたいc:が読めないからスルーしたら終わるw

素直に権限ない場合%userprofile%とか検索するプログラム書いて分岐。

もしくは根本的に検索するべきなのか考え直せぇ

811:デフォルトの名無しさん
09/09/15 00:03:45
百姓を馬鹿にしている奴が昨日から1人いる…。

812:デフォルトの名無しさん
09/09/15 09:19:31
たいがいそいつはもとはひどい百姓だったんだよ

でも>>809-810こいつらはきわめて優しいと思うぞなかなか真似できん

813:デフォルトの名無しさん
09/09/15 09:34:51
まあキャッチスルーじゃそもそも出来ないんだから、
MSDN見れなんてのはあんまいい回答とも思えんしな。


814:デフォルトの名無しさん
09/09/15 11:48:52
y=(2 * Math.Atan(Math.Exp(f)) - PI / 2) / (PI/180);

ある座標変換系コードを検証してんだけど、これはつまりなにやってんの?

815:デフォルトの名無しさん
09/09/15 11:56:01
数学板で聞いた方が早いんじゃない?

816:デフォルトの名無しさん
09/09/15 12:06:42
Directxでフォームとは別のクラスを作ってそこでDirectxの処理をして
ピクチャーボックスに表示したいんですがどうしたらいいんでしょうか。
今はDirectXのデバイスにピクチャーボックスのハンドルを入れたらいいのかなと
思ってやってるんですが間違えてますか?


public Intptr GetHandle()
{
PHandle = PictureBox1.Handle;
}

デバイスにPHandleをいれる。
private bool InitializeGraphics()
PHandle = GetHandle();
device = new Device(0, DeviceType.Hardware, PHandle,・・・・・);

817:デフォルトの名無しさん
09/09/15 12:18:54
ドキュメントで引数の型を見ろよカス

818:デフォルトの名無しさん
09/09/15 12:20:43
>>815
ですよねー

トン

819:デフォルトの名無しさん
09/09/15 12:23:54
プログラミング板から誘導されました

y=(2 * Math.Atan(Math.Exp(f)) - PI / 2) / (PI/180);

ある座標変換系コードを検証してんだけど、これはつまりなにやってんの?

820:デフォルトの名無しさん
09/09/15 12:24:36
ゴバーク orz

821:デフォルトの名無しさん
09/09/15 12:26:29
カワイイなお前

822:デフォルトの名無しさん
09/09/15 12:37:35
>>818
型が違うとだめなのか。どうもありがとう

823:デフォルトの名無しさん
09/09/15 14:26:21
正規表現で「ASCII文字を許す。ただし例外として "<"と">"は不許可

ってどう書けばいいんでしょうか?

824:デフォルトの名無しさん
09/09/15 14:38:26
[ -;=\?-~]
空白からセミコロンまで、等号、疑問符からチルダまで

※試してません

825:デフォルトの名無しさん
09/09/15 16:00:42
質問させて下さい。
ここの過去スレで読み取り専用でListを公開したい時はReadOnlyCollection
で渡すと良い、という事を知りました。
同様にDictionaryを読み取り専用で公開したい場合、ReadOnlyCollection
の様な方法は用意されているのでしょうか?無い場合、どのような方法が
より安全でしょうか?


826:デフォルトの名無しさん
09/09/15 16:03:58
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

requestからファイルサイズを習得しようとすると-1になるのですが、
どうしたら正しいファイルサイズが習得できますか?。



827:デフォルトの名無しさん
09/09/15 16:07:46
>>826
HttpWebRequestからファイルサイズとか取れないだろ。
何をどうやって取ろうとしてるの?

828:デフォルトの名無しさん
09/09/15 16:13:57
>>825
自分で作る 大した手間じゃないよ

829:デフォルトの名無しさん
09/09/15 16:15:20
>>827
httpwebrequest.contentlength

あ、これはリクエストする方のサイズなのですね
ごめん

830:デフォルトの名無しさん
09/09/15 22:43:26
C#でiphoneのアプリ開発やったことある人に質問なんですが
使い勝手や感想を教えて下さい

831:デフォルトの名無しさん
09/09/15 22:44:56
すいません
mono touchのことです

832:デフォルトの名無しさん
09/09/15 22:49:47
>>830-831
消しゴムじゃないMONOを使ってみるスレ 2個目
スレリンク(tech板)l50

833:デフォルトの名無しさん
09/09/15 22:56:31
>>832
スレ違いでしたか
助かります

834:デフォルトの名無しさん
09/09/16 00:34:00
RealProxyがよくわからないんですが、わかりやすい解説サイトないでしょうか?

835:デフォルトの名無しさん
09/09/16 04:16:34
テキストボックスをマルチラインの設定で
複数行入力されたテキストにより、スクロールバーが表示されている状態から
テキストボック本来の開始位置からの座標を取りたいのですが
良い方法はないでしょうか?

Point mp = Control.MousePosition; //マウスカーソル位置の画面座標取得
Point cp = textBox1.PointToClient(mp); //textBoxの座標に変換

としているのですが、スクロールバーによる表示されていない部分が無視されます。


836:デフォルトの名無しさん
09/09/16 07:25:02
長い文章を指定した文字数で
改行し行揃えする関数は標準で用意されてますか?

String.Format ではできなさそうでした。

837:デフォルトの名無しさん
09/09/16 07:27:09
ありません

838:デフォルトの名無しさん
09/09/16 08:05:20
ありがとうございました。

839:デフォルトの名無しさん
09/09/16 10:09:15
File.Existsって、*file.txtのようにワイルドカードは使えないんですか?
01file.txt
02file.txt

などのどれかにヒットさせたいときには、
string[] files = Directory.GetFiles(dir, "*file.txt");
して、確認しないとだめなんでしょうか?


840:デフォルトの名無しさん
09/09/16 10:14:13
そうよ

841:デフォルトの名無しさん
09/09/16 10:26:09
ありがとうございました。

842:デフォルトの名無しさん
09/09/16 11:15:26
イメージリストからイメージを取り出す方法はありませんか?
それとイメージリストにイメージを登録した時点でリサイズされてしまうのでしょうか?。
それとも表示する時にリサイズされるだけ?。

(Image)imagelist_listview.Images[listView1.SelectedItems[0].Name];



843:842
09/09/16 11:26:49
>>842
事故
関係ない所で間違っていました

844:デフォルトの名無しさん
09/09/16 11:33:25
ImageList.ImagesからImage取得した時点で画像のコピーが作られるから
頻繁に出し入れするならImage.Disposeを忘れないようになー

845:デフォルトの名無しさん
09/09/16 11:50:11
usingばっちこい

846:デフォルトの名無しさん
09/09/16 16:51:46
Stackを配列から初期化するには
forでまわして一個ずつpushするしかないのでしょうか?

もしくは

Stack.Pop() も forループ も使わずに
配列の先頭要素を除いた残りの配列を返す方法はありますか?

847:デフォルトの名無しさん
09/09/16 16:53:38
Stackの用途間違えてる
リンクリストでも使えよ

848:デフォルトの名無しさん
09/09/16 17:14:02
consセルでおk

849:デフォルトの名無しさん
09/09/16 17:22:27
2008Expressでjitを使えるようにする方法はないものでしょうか?

850:デフォルトの名無しさん
09/09/16 17:24:02
Just In Time = ちょうどそのとき

そのときになにをしたいの?

851:デフォルトの名無しさん
09/09/16 17:25:39
俺用語使われるとエスパーの出番しかなくなって

852:デフォルトの名無しさん
09/09/16 17:37:42
>>850
どうでもいいけど、英語圏でjitはもはや動詞として使われてるよw
JIT - JITs - JITted - JITting

意味はもちろんJITコンパイルすること。対義語はto AOT

853:デフォルトの名無しさん
09/09/16 17:38:18
で?

854:デフォルトの名無しさん
09/09/16 17:40:43
だからなんなんっていう。

855:デフォルトの名無しさん
09/09/16 17:43:59
849にしかわかりません

856:デフォルトの名無しさん
09/09/16 17:45:29
そうすると英語圏的にはトヨタ完全敗北なのか

857:デフォルトの名無しさん
09/09/16 18:50:06
その通り

858:デフォルトの名無しさん
09/09/16 19:28:48
JITって見てこれを思い出したけど間違ってたみたいだね。

Just-In-Time デバッグ:
URLリンク(msdn.microsoft.com)

859:デフォルトの名無しさん
09/09/16 23:39:15
>>814
亀レスで、もう数学板の方でレスついちゃってるかもしれないけど、一応

双一次変換のアナログ周波数→ディジタル周波数の計算式じゃない?

860:デフォルトの名無しさん
09/09/17 00:24:32
なんとなく交流理論でよく使う極座標表示関連の式のように思うけどね。

861:デフォルトの名無しさん
09/09/17 00:35:24
>>860
URLリンク(ufcpp.net)
この双一次変換の周波数特性の式に、ωa = exp f を入れた式かと。
対数周波数(= オクターブ)を双一次変換でディジタル化したときの特性周波数だなぁ、多分。

862:デフォルトの名無しさん
09/09/17 00:36:11
atan だから逆か・・・

863:デフォルトの名無しさん
09/09/17 05:01:07
ジェネリック配列にテキストボックスのテキストを改行区切りで
= Text.Replace("\r", "").Split(new char[] { '\n' });
としたいのですが、どのように処理すればよいでしょうか?

864:デフォルトの名無しさん
09/09/17 05:09:15
ジェネリック配列?
ジェネリックも何もString.Splitの左辺はstring[]しかありえないが?

865:863
09/09/17 05:19:34
ありがとうございます。
string[]しか無理なのですね・・
動的に配列を追加していきたいもので・・・

866:デフォルトの名無しさん
09/09/17 05:25:03
もうちょっと広い範囲で何をしたいのか書いた方がいいかも
List<string>にstring[]をAddRangeすることはできる
もちろんList<string[]>にAddすることも

867:863
09/09/17 05:43:05
AddRangeで実現することができました!
ありがとうございます!!
勉強不足ですいません!

868:デフォルトの名無しさん
09/09/17 10:23:27
C#で予め用意された値型構造体やString型クラスは
=演算子で構造体またはクラス変数にそのままメンバ値を代入できますよね

これってユーザ定義構造体またはクラスで実現できますか
調べてみたら、=演算子のオーバーロードはできないみたいだし、
インデクサは配列メンバにしかアクセスできないし。。。
プロパティでpublic this{ get; set; }みたいできたらいいんですが。。。

869:デフォルトの名無しさん
09/09/17 10:26:02
はぁ?

870:デフォルトの名無しさん
09/09/17 10:28:10
もしかしてリテラルが使いたいってこと?
string x = "str"; int x = 100; こういうの
暗黙の型変換(implicit operator)を実装すれば Hoge x = 1; とかできるようになる

871:869
09/09/17 10:31:44
ああそういうことですか。煽って申し訳ない。

872:デフォルトの名無しさん
09/09/17 10:35:13
>>868
勘違いしてそうだけど
string x = "str" って,xが指してるStringオブジェクトのメンバを変更してるんじゃなくて
新しいStringオブジェクトを作ってその参照をxに代入してるんだよ

873:デフォルトの名無しさん
09/09/17 10:35:41
え?そうなの?
じゃあやっぱ煽ろうかな。

874:デフォルトの名無しさん
09/09/17 10:40:40
文字列リテラルで新しいオブジェクトはまずい表現だがまあ初心者スレだからいいか。

875:デフォルトの名無しさん
09/09/17 13:53:28
>>863
Textbox.Lines

876:デフォルトの名無しさん
09/09/17 14:08:49
このようにしてイメージリストにアイコンを入れてみたんですが
これを取り出す方法が分からないので教えてください。

imageList2.Images.Add("rar", appIcon);

877:デフォルトの名無しさん
09/09/17 14:12:50
imageList2.Images["rar"]

878:デフォルトの名無しさん
09/09/17 14:15:21
>>877
ありがとうございます。無事出来ました。

879:デフォルトの名無しさん
09/09/17 16:51:07 BE:185292342-2BP(85)
>>874
可能です。
以上。
はい次の方。

880:デフォルトの名無しさん
09/09/17 17:41:44
listViewで最後の項目を選択したいです。
listBoxの場合には、
listBox.SetSelected(listBox.Items.Count -1, true);
でできるのですが、listViewの場合には、どのようにしたらよいでしょう?


881:デフォルトの名無しさん
09/09/17 17:50:32
Itemsから最後の取得してSelected

882:デフォルトの名無しさん
09/09/17 18:12:41
listView.Items.のあとに、選択系のそれらしきものがないんですけど…。

883:デフォルトの名無しさん
09/09/17 18:15:21
ListViewItemのプロパティ

884:デフォルトの名無しさん
09/09/17 18:27:45
なんか江戸っ子みたいな一言居士な方ですね。
そうぶっきらぼうにいわず、プロパティのどの項目か、
もうすこし手順まで教えていただけないでしょうか。
listViewのItemsのプロパティを見ると、
(コレクション)とか書いてあって、
ここではなさげだし、セレクト系の項目も見当たらないし。

885:デフォルトの名無しさん
09/09/17 18:33:48
何甘えてんの

886:デフォルトの名無しさん
09/09/17 18:41:00
>>884
横からだが、>>881で答え出てるじゃん
それで分からないって言うから>>883でListViewItemのプロパティってとこまで教えてもらってるのに、何故理解できないのか。

とりあえずMSDNのListViewItemの項目読んで来い。

887:デフォルトの名無しさん
09/09/17 19:07:50
みんな優しいのな。 こういう人には、さっさと教えて勉強する機会を奪いたくなる。
listView1.Items[listView1.Items.Count - 1].Selected = true;
listView1.Select();

888:デフォルトの名無しさん
09/09/17 22:56:13
MSDN読めと一言いえば済むよ

889:デフォルトの名無しさん
09/09/17 23:49:53
MSDNは俺の読め

890:デフォルトの名無しさん
09/09/18 01:33:13
>>887
ありがとうございます。無事出来ました。


891:デフォルトの名無しさん
09/09/18 03:40:59
どういたしまして。

892:デフォルトの名無しさん
09/09/18 04:11:06
C#のメソッドをネイティブDLLにコールバック関数として渡したいので
そのメソッドのデリゲートを渡したところ一旦は動くのですが、
しばらくするとGCで移動させられて呼び出し時にエラーが発生するようになります。
そこでデリゲートをGCHandle.AllocでPinnedにしようと思ったんですが、
デリゲートはblittableでないからとArgumentExceptionが発生します。
どうすればDLLに固定されたアドレスを渡せるんでしょうか。

893:デフォルトの名無しさん
09/09/18 07:45:04
デリゲートインスタンスをローカル変数じゃなくてフィールドに置くようにしとけばいいよ

894:デフォルトの名無しさん
09/09/18 07:50:24
言っとくがエラーになるのは固定されてないからとかそういう問題じゃないよ
デリゲートが解放されないように参照をちゃんと保持しとけばいいだけ


895:デフォルトの名無しさん
09/09/18 12:09:00
一枚の大きな画像が複数のタイルファイルに別れている場合、
タイルファイルを呼び出して大きな画像を作る前処理が必要です。

そして表示領域が移動したとき、領域からはずれたタイルを破毀し、必要なタイルだけを補完する必要があります。

こういう場合とっておきのスマートな処理方法ってありますか?

定石のようなものやクラス構成のヒントだけでも教えてもらえるとありがたいです。

896:デフォルトの名無しさん
09/09/18 12:17:56
バカじゃねーの

897:デフォルトの名無しさん
09/09/18 12:21:47
自分の歩いた道は既に誰かが通っていて、
常に舗装されている(スマートな解法が存在する)と思ってる奴がいるよね。

898:デフォルトの名無しさん
09/09/18 12:24:03
煽りはうざいから消えてくれ
ちゃんとしたレスする気がないならスルーしろ

899:デフォルトの名無しさん
09/09/18 12:25:50
嫌だね

900:デフォルトの名無しさん
09/09/18 12:26:45
スレタイ読めよクズが

901:デフォルトの名無しさん
09/09/18 12:27:07
┐('~`;)┌

902:デフォルトの名無しさん
09/09/18 12:28:00
こういうの定期的に湧くね。
バイオリズムか何かで虫の居所が悪い周期でもあんのかしら。

903:デフォルトの名無しさん
09/09/18 12:28:15
テンプレ読めクズ

904:デフォルトの名無しさん
09/09/18 12:30:14
くずがくずとののしるのですか

905:デフォルトの名無しさん
09/09/18 12:32:11
黙れクズ

906:デフォルトの名無しさん
09/09/18 12:33:32
URLリンク(hinagis.blog33.fc2.com)
俺ど素人だから分からんがここに書いてあるんじゃない?

907:デフォルトの名無しさん
09/09/18 12:37:34
平和だな

908:デフォルトの名無しさん
09/09/18 15:29:24
>>893-894
ありがとうございます。
できました。
でもこれって移動しない保証はあるんですか。
それとも保証は無いけど実質移動はしないということですか。

909:デフォルトの名無しさん
09/09/18 15:48:53
>>908
今どういうコード書いてあるか見せてみろよ。
移動がどうこう言ってるようじゃ何か間違ってるわ

910:デフォルトの名無しさん
09/09/18 16:05:24
間違ってねーよ
できたつってんだろ

911:デフォルトの名無しさん
09/09/18 16:08:13
正直よく分からんが、取り敢えずこの辺の議論でも読んでみたら?>デリゲートの固定
URLリンク(www.atmarkit.co.jp)

912:デフォルトの名無しさん
09/09/18 16:19:34
懐かしいな…

そこでも結論出てたと思うが、デリゲートをアンマネージに渡すと、
マーシャリングのためのサンクが作られる。
このサンクが生きてる限り、アンマネージからの呼び戻しは正しく動作する。
サンクはデリゲートがGCで解放されると死ぬ。

以上、デリゲートの固定とか関係ない。


913:デフォルトの名無しさん
09/09/18 16:20:44
Marshal.GetFunctionPointerForDelegateにはGCが回収しないようにしておけばいいと書いてあるから
固定とか不要だと思うけど

914:913
09/09/18 16:21:24
すまん、リロードしてなかった

915:デフォルトの名無しさん
09/09/18 16:38:53
>>911-914
ありがとうございます。
参考になりました。

916:デフォルトの名無しさん
09/09/18 16:42:24
サンクが作られるのか
サンクス


917:デフォルトの名無しさん
09/09/18 17:21:51
C++/CLIからC#に来るとC++のpin_ptr<T>とかのせいで誤解するよね

918:デフォルトの名無しさん
09/09/18 17:34:34
しないです

919:デフォルトの名無しさん
09/09/18 17:49:51
するです

920:デフォルトの名無しさん
09/09/18 17:52:20
VBからくるとC#の{ ... }ブロックはべんりねん

921:デフォルトの名無しさん
09/09/18 17:56:01
VBが不便なだけ

922:デフォルトの名無しさん
09/09/18 18:36:23
>>895
ゲームのマップ?
C#にこだわらなければサンプルはそこらへんに腐るほど落ちてるぞ
一回書けば二度と触らない部分だろうからスマートとかどうでもいい

923:デフォルトの名無しさん
09/09/18 18:51:23
>>917 C++にはpin_ptrなんか無いぞ
C++のせいにするなー!

924:デフォルトの名無しさん
09/09/18 19:10:51
>>922
あざーす
一枚のタイルがどこまで動いたか調べて一斉にタイルを書き換える方法が見つかりました
まー結局ループしてコピーなんですね

OOPっぽくタイルクラスに移動値(x、y)を与えてやってみます

925:デフォルトの名無しさん
09/09/18 19:20:35
タイルをクラスにするなら,表示領域外のタイルオブジェクトも保持するようにした方がスマートだよ
表示領域外に出たタイルオブジェクトは描画リソースだけ破棄するようにする
大きな画像全体を仮想的に保持しといて,必要な範囲だけ描画を有効にするイメージ

926:デフォルトの名無しさん
09/09/18 21:41:47
>>925
ありがとうございます
ライフゲームのセルみたいな感じですね?
わかります

C++で最初に書いたのを思い出しました


927:デフォルトの名無しさん
09/09/19 08:38:42
商品注文画面を作成しています。
a.
検索ボックスに検索したい商品の名前を入力しはじめると、
返還前であっても該当する商品が右側の窓に表示されるようにしたいのですが、
返還前の文字列を取得し、検索結果を表示するにはどうすればいいでしょうか。
b.
発注者の氏名を入力したら、自動で発注者のフリガナを下のボックスに入れたいと思っています。
これもaと同じ要領で返還前文字を拾うことができるでしょうか。

よろしくお願いします。

928:デフォルトの名無しさん
09/09/19 08:45:32
いやです

929:デフォルトの名無しさん
09/09/19 09:05:11
>>924
>>925
この2レスだけ読むと滅茶苦茶重くなりそうに見える。

930:デフォルトの名無しさん
09/09/19 09:30:51
それほどでもない


931:デフォルトの名無しさん
09/09/19 10:11:13
>>927
IMEで入力中の文字列を取得すればいいだけじゃん

932:デフォルトの名無しさん
09/09/19 10:12:45
>>929
タイル(x1,y1)が(x3,y5)へ移動した場合
タイルのインデックスを書き換えるようにした方がいいですかね?
タイルの座標が表示領域(およびバッファ領域)を超えた時点でインデックスが削除され
インデックス(0,0)から順に描画、タイルがインデックス上に存在しない場合、インデックスを消したタイルを再利用

クラス タイル
{
   string タイル座標;
   bitmap タイル画像;
}

クラス タイルコンテナ
{

}

933:デフォルトの名無しさん
09/09/19 10:13:58
>>932
途中で投稿してしまいました orz
タイルコンテナでタイルを配列かリストで管理する感じです

934:デフォルトの名無しさん
09/09/19 10:16:34
このとき、タイルはタイル領域のサイズを知っていれば
移動量を与えるだけで自分が領域を外れたかどうか判断できると思うのですが
タイルコンテナクラスのプロパティをタイルクラスから参照する方法ってありましたか?

引数で与えてやればいいだけですが

935:デフォルトの名無しさん
09/09/19 10:40:22
>>932
タイルということは敷き詰めるんだよな?
> タイル(x1,y1)が(x3,y5)へ移動した場合
この時点で無駄でしょ。
タイルが移動するオブジェクトである必要は無い。
2次元配列(パフォーマンス的には配列の配列か)、視点(カメラ)、リソースのコンテナ、あと表示領域分の別バッファ…このあたりか
動くのは自分或いは世界ね。
怠惰なオラは>>924以前の流れは読んでないので的はずれだったらすまぬ。
ノシ

936:デフォルトの名無しさん
09/09/19 11:32:09
>>935
なるほど スピード重視だとそうなるんですね
タイル空間の座標を全タイル分用意
配列の配列には画像へのポインタ
こんな感じすか?

見える範囲をキャタピラみたいなもんに描画するのと
たぶん画像のポインタの切り替えや読み込みは同じなんで
ループするタイルの枚数が少ない方が早い気がしますが

タイルの総数が少ないと配列の方が早いんですね?

参考になりました

937:デフォルトの名無しさん
09/09/19 11:48:58
> 配列の配列には画像へのポインタ
もっと単純にintでもいい
もしxna+xboxなら値型のほうがいいから、この場合複雑なものが入るときはstructのほうがいい
> タイルの総数が少ないと配列の方が早いんですね?
そうじゃないです。常に描画するのは差分だけなので描画回数等から差が出る。
別個のオブジェクトとして扱うとその最適化に悩むことになると思われる。

938:デフォルトの名無しさん
09/09/19 12:25:06
なーんか>>936の考えがよくわかんないね。
タイルが移動とか、どうしてそういう風に考えるんだろう。

普通に考えれば、例えば表示領域のサイズがタイルを1としたときn×mだとしたら、
(n+2)×(m+2)のサイズのバックバッファを用意して、あとは球面スクロールを
実現するために(1)バックバッファの更新方法と(2)バックバッファからのBitBltの方法
を考えるだけじゃないの?


939:デフォルトの名無しさん
09/09/19 14:17:49
>>937
ありがとうございます。
>単純にintでもいい
なるほど画像番号みたいなものですね

>別個のオブジェクトとして扱うとその最適化に悩むことになると思われる。
もうすでに悩んでいるようです
言われてみて実際のサイズを考えて見たら、理論上はタイルを1として
35万×35万くらいのマップサイズになる可能性がわかりまして・・・

>>938
ありがとうございます。
こういう話に慣れてないのですみません。

単なる描画と割り切ってしまえば簡単ですね。
タイルファイルをオブジェクトとして扱わない方向で考えて見ます。

940:デフォルトの名無しさん
09/09/19 16:40:40
MDI フォームを作り、子ウインドウを最大化して使用しています。
ボタンをつけて、アクティブなウィンドウを変更できるようにしたのですが、
変更する際に、一瞬だけ最大化されていないウィンドウが表示されてしまいます。

スムースに切り替える方法はないでしょうか?

941:デフォルトの名無しさん
09/09/19 17:02:21
またそういう「ナイアル厨ホイホイ」な質問を・・・

まあ何か方法はあったはず。
MDIは他にもしょうもないバグが満載だから困っちゃうね。

942:デフォルトの名無しさん
09/09/19 18:02:03
子ウインドウが常に最大化されてるんだったらMDIでなくてよくね
Panel貼っといて中身を差し替えたら

943:デフォルトの名無しさん
09/09/19 21:19:52
C#のお勧め書籍を教えてください。
オライリーの初めてのC#は読みましたがいまいち内容が足りない感じです。
もう少しオブジェクト指向など高度なことが学びたいのです。

944:デフォルトの名無しさん
09/09/19 21:54:05
おまえ、オブジェクト指向いいたいだけ違うんかと。

945:デフォルトの名無しさん
09/09/19 22:13:49
デザパタ本でも読めば?

946:デフォルトの名無しさん
09/09/20 02:58:43
>>931
そのやり方が何を見ても分からないんです。
どのようにすれば、IMEから確定前の入力を拾うことができるのでしょうか?

947:デフォルトの名無しさん
09/09/20 06:28:31
>>946
.NETのクラスライブラリ(BCL)にはない。BCLにあるのはIMEのOn/Offくらい。
Win32APIを使うことになるが結構面倒で説明しきれない。
imm.h / imm32.lib でぐぐればいくつか出てくると思うよ。

948:デフォルトの名無しさん
09/09/20 10:56:44
極東向けのおまけパッケージに、ふりがな取得する奴はあった気がする。

949:デフォルトの名無しさん
09/09/20 14:01:20
「性別」グループボックス内に、
ラジオボタン「男」「女」を並べています。
「男」ラジオボタンのタブストップをTrueにし、
「男」ラジオボタンにフォーカスが当たったときに、男と女を選択するようにしたいと思っていますが、
「男」ラジオボタンにフォーカスが当たった時に、
「男」が自動でチェックされてしまいます。
フォーカスは当たるけどチェックは手動で行ってもらうようにするにはどうすればいいでしょうか。
教えてください。

950:デフォルトの名無しさん
09/09/20 14:13:29
そういうもんだろ。

951:デフォルトの名無しさん
09/09/20 14:16:47
>>949
ラジオボタンはそういうもんだという気がするが、
どうしてもやりたいなら、チェックボックス使って、
排他は自分で制御とか。

952:デフォルトの名無しさん
09/09/20 14:18:36
そういう微妙なとこ変えられるとかえって戸惑うだろうな
そういうのって意識してなくても慣れてるもんだから

953:デフォルトの名無しさん
09/09/20 14:30:33
ほっとけば、選択中の項目にフォーカスするようになっているのに何がしたいのか

954:デフォルトの名無しさん
09/09/20 14:36:37
フォームデザイナでサイズを指定するとウィンドウの外側にあわせてサイズが指定されるんですが
枠の内側(タイトルバーなどを除いた、実際の表示領域)のサイズを指定することはできないのでしょうか?

955:デフォルトの名無しさん
09/09/20 14:39:07
>>950-552
そもそも>>949のいってるようなことは実際には起こらんよ。
フォーカスが当たっただけでチェックされる、なんてことはない。
そんなアホなコントロールがあるわけないだろ常識で考えても。

956:デフォルトの名無しさん
09/09/20 15:00:40
>>955
フォーカスが当たってもチェックされないみたいだけど、
見た目はチェックされているからね。
フォーカスを当てつつ、チェックもさせないようにできないのかな。
カーソルキーやスペースを押して初めてチェックがつくように。

957:954
09/09/20 15:02:04
クライアントっていうんですね・・・
this.ClientSize = new Size(640, 480);
↑でできました

ただ、これで対応した場合はフォームデザイナのほうはそのままにしておくのでしょうか?
これを入力して戻っても、サイズがかわってくれません
(ビルドしたらきちんとサイズは変更されています)

958:デフォルトの名無しさん
09/09/20 15:08:08
>>956
ごめん、言ってる意味が理解できない。

君はフォーカスが当たると「チェックされる」と言ってるか、「チェックされない」
と言ってるのか、どっちなんだ。

現実はどうかと言えば、もちろんフォーカスがあたっただけでチェックなどされない。

959:デフォルトの名無しさん
09/09/20 16:21:25
>>958
フォーカスが当たった時に
実際はチェックされていないのかもしれないけど、
見た目は点が付いてしまっているのを、
点が付かないようにできないのかな。

960:デフォルトの名無しさん
09/09/20 16:26:28
それぞれが独自の意味でフォーカスという単語使ってるせいで
意思の疎通ができてませんよお前ら

961:デフォルトの名無しさん
09/09/20 16:50:04
タブオーダーが最初だとチェックされるね。
まあAutoCheckはずしてclickイベントで自力でやるとか

962:デフォルトの名無しさん
09/09/20 18:46:56
タブが当たったときに、○に・がつかないようにしたいんだろ?
javaではできるみたいだけどね。

963:デフォルトの名無しさん
09/09/20 19:37:09
ListView1にあるアイテムをListViewItemの配列にまとめて入れたいんですが
foreachを使わないで簡単にできる方法ってありますか?

964:デフォルトの名無しさん
09/09/20 19:40:38
Items.Cast<ListViewItem>().ToArray()

965:964
09/09/20 19:41:23
これだと新しい配列になるから駄目か

966:デフォルトの名無しさん
09/09/20 19:43:16
即レスどうもありがとうございました。

967:デフォルトの名無しさん
09/09/20 19:45:48
>>965
入れることができるなら新しくても何でも大丈夫です。

968:デフォルトの名無しさん
09/09/20 22:06:26
リムーバブルディスクなどを挿した時に走る自動実行を制御したいです。
ダイアログを出さないためにはレジストリをいじるしかないでしょうか。
作りたい機能としては、
shiftを押しながらリムーバブルディスクを挿すと自動実行のダイアログが
出てこないですが、それと同じように一時的に自動実行を無効にする
方法はないでしょうか。

969:デフォルトの名無しさん
09/09/20 22:51:44
>>968
有限数のマシン(XP,2k)に限り完全に機能を殺したい
ってだけだったら、こっちをオススメする(C#は一切関係ない
URLリンク(gigazine.net)


もっと便利なユーティリティを作りたいっていうんだったら全然分かりません。

970:デフォルトの名無しさん
09/09/20 23:00:17
>>969さん
ありがとうございます。
自作のプログラムが常駐している間は自動実行を
無効にして、挿さったリムーバブルディスクに対して
やりたい操作をしたいので、今回お教えいただいた
方法は欲しい方法ではありませんでした。

971:デフォルトの名無しさん
09/09/20 23:27:48
URLリンク(www.mnet.ne.jp)
LKCUだから特に昇格とかはいらんが 再起動はどうだろ

972:デフォルトの名無しさん
09/09/20 23:29:03
LKCUじゃないや、HKCU

973:デフォルトの名無しさん
09/09/20 23:36:22
むしろTweakUIで十分じゃないかと思うなあ
再起動しなくて済む分だけ楽だし。

UI起動すらめんどいってほどの頻度で設定変更したいなら
特定アプリの特定項目を自動実行するようなユーティリティアプリを作った方が早い気がする。
//特定アプリのUI表示位置とかが変更不可能な場合に限るだろうけど

974:デフォルトの名無しさん
09/09/20 23:37:47
968です。
>971さん
やはりレジストリをいじる必要がありそうですね・・
調べた感じ再起動も必要みたいです。
簡単にはいかないですね。

975:デフォルトの名無しさん
09/09/20 23:45:17
968です。
>973さん
常駐プログラムがリムーバブルディスク挿しの監視
をして挿さった時にファイルコピーなどの処理をしたいので、
ユーザーが設定変更を意識しない方法をとりたいです。
自動実行を重宝しているユーザーも、もしかしたらいる
かもしれないですし、この常駐プログラムが実行されている時
だけの設定変更としたいです。

976:デフォルトの名無しさん
09/09/20 23:53:06
>>975
そのリムーバブルディスクに何もしないautorun.infを作って入れておいたらどう?

977:デフォルトの名無しさん
09/09/21 00:06:02
上の方で、ラジオボタンとフォーカスの話があったけど
マウスとキーボードの差に見えて仕方がない。

978:968
09/09/21 00:07:22
>976さん
リムーバブルディスクはユーザーが持っているものなので
autorun.infなどは入れられません。

考えている仕様ですが
・常駐プログラムである
・ユーザーの持っている任意のリムーバブルディスクである
・ユーザーがリムーバブルディスクを挿したタイミングで走る
・挿した後自動でファイルコピー等の処理をする

以上のような仕様の場合、自動実行のダイアログが邪魔になります。


979:デフォルトの名無しさん
09/09/21 00:24:54
なんつーか、C#関係ないよね

980:968
09/09/21 00:56:40
確かにそうですね・・・
C#を使っているので質問しました。
みなさんありがとうございます。


981:デフォルトの名無しさん
09/09/21 01:54:12
>>977
最初にTabStopの話しが出ているんだから、マウスとかカーソルキーとかは論外だろう

982:デフォルトの名無しさん
09/09/21 10:20:22
#if DEBUG
#endif
みたいなかんじで
#if 発行  とやるにはどうやるんでしょうか?

983:デフォルトの名無しさん
09/09/21 11:10:31
# 日本語でOK

984:デフォルトの名無しさん
09/09/21 12:14:13
Dictionary<Key,Value>で特定のKeyがセットされてるかどうか調べるにはどうすればいいですか?

if (Dictionary[key] == "") とするとセットされていないときエラーになります。
catchするしかないでしょうか?

985:デフォルトの名無しさん
09/09/21 12:19:03
ContainsKey

986:デフォルトの名無しさん
09/09/21 12:22:52
TryGetValueとかも。
というか、分からなかったら質問する前に、まずオンラインドキュメント読もうよ。

987:デフォルトの名無しさん
09/09/21 12:32:32
最近少し分かるようになってきたけど
初心者にはドキュメント自体が理解できないんだよな

988:デフォルトの名無しさん
09/09/21 12:35:19
確かに。しかし不思議なことにじきに理解できるようになる

989:デフォルトの名無しさん
09/09/21 16:34:00
Framework 2.0 compacktで

非同期要求のHttpWebRequest.BeginGetResponse
でコールバックメソッドに処理が戻る前に
System.UriFormatExceptionが出ます

リクエストは通ってるようで、データは取れてるのですが、
HttpWebResponseになにかメッセージが入ってるのでしょうか?

ヒントをお願いします

990:デフォルトの名無しさん
09/09/21 16:52:16
RFC 2396

991:デフォルトの名無しさん
09/09/21 17:00:28
エンコードチェックしてみます

ありがとうございました

992:デフォルトの名無しさん
09/09/21 17:01:19
WebRequest.Createの段階でUriFormatExceptionが出ないのがやや不可解
AllowAutoRedirect=true、3xxで無効アドレスでも返されてるんだろうか

993:デフォルトの名無しさん
09/09/21 17:25:54
いえ、レスポンス見ると要求したURLから正常なデータが取れてます
ステータスOKです

具体的には今は画像のダウンロードでやってますが、画像はちゃんと表示できます

HttpWebRequestが勝手に再送信を要求して通ってる・・・わけはないですよね?
なんだろうな

994:デフォルトの名無しさん
09/09/21 17:31:04
その例外ってcatchしないとアプリが止まっちゃう?
それとも内部で出てるのがデバッグ出力に吐かれてるだけ?

995:デフォルトの名無しさん
09/09/21 17:31:22
パケット見てみれば?

996:デフォルトの名無しさん
09/09/21 17:40:01
>>994
後者です
catchでは掴まらずBeginGetResponseが処理を終わってコールバックメソッドに処理が戻る前に
デバッグ出力に出ます

>>995
パケット・・・

997:989
09/09/21 17:42:41
次スレ建てました

スレリンク(tech板)

998:デフォルトの名無しさん
09/09/21 18:00:42
ume

999:デフォルトの名無しさん
09/09/21 18:01:24
999

1000:デフォルトの名無しさん
09/09/21 18:02:12
1000

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


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