ふらっとC♯(Part5) ..
[2ch|▼Menu]
75:デフォルトの名無しさん
03/12/03 23:40
>>74
さっぱり忘れてるのですが
マウスの座標をPointで取得して
指定したRectangle(フォーム)の中に引数に指定した
Point(マウスの座標)が存在するか、というようなメソッドを使って
できたような。。


76:デフォルトの名無しさん
04/01/22 07:18
あげ

77:デフォルトの名無しさん
04/01/29 14:01
TreeViewで、ツリーノードが展開されているときのイメージを指定する方法って
無いんでしょうか?
ImageIndexとSelectedImageIndexだとノードを選択しているか否かの状態のみの設定で、
ツリーノード展開したまま別ノードを選択すると結局非選択時のイメージになってしまうんで…。

要はフォルダオープンとクローズのイメージを表示させて、ツリーノードの展開に合わせて
イメージを変更したいんですが、Expand系のイベントを利用して自力書き換えするしか
無いんでしょうかね?


78:デフォルトの名無しさん
04/01/29 23:07
>>77
それでいいんでね。
URLリンク(santamartadotnet.hp.infoseek.co.jp)

79:77
04/01/30 06:47
>>78
了解です。ありがとー。

80:デフォルトの名無しさん
04/02/11 08:52
なんか不安定?

81:デフォルトの名無しさん
04/02/11 13:06
今年度のバレンタイン大作戦

女性店員がレジにいるコンビニでチョコを買う

わざとチョコを受け取り忘れて店を出る

女性店員が走って渡しに来る「あの・・・これ・・・」

ちょっぴりバレンタイン気分

82:banban
04/02/11 18:54
mysqlのデータを操作するのはどうすればいいんでしょう?
出来ればソースもらえたら嬉しいです、全然わかんないんです。

83:デフォルトの名無しさん
04/02/15 19:30
超ド初心者質問でスマソです
exeファイルへの出力ってどうやったらいいのでしょうか?

84:デフォルトの名無しさん
04/02/15 19:32
>>83
わかりません

85:デフォルトの名無しさん
04/02/16 00:07
>>83
超ド初心者質問でスマソです
あなたの脳内を読み取るにはどうやったらいいのでしょうか?

86:デフォルトの名無しさん
04/02/17 11:34
>>83
csc /out:hoge.exe hoge.cs
ネタにマジ(ry

87:デフォルトの名無しさん
04/02/17 11:49
>>82
英語ページですが。
URLリンク(www.c-sharpcorner.com)
要はODBC .Net Data Provider入れてMyODBC入れて云々、らしいです。
サンプルコードはASP.NETですがWinFormでも似たようなものかと思われます。

88:デフォルトの名無しさん
04/03/24 19:20
宜しくお願いします。
Timerのインスタンスと同期させる簡単なゲームを作っているのですが
このインスタンスを1000分の1秒単位で一時停止させるにはどうすれば良いのでしょうか?
stopさせると0.000秒に初期化されてしまいます。
pauseというメソッドは無いみたいですが不可能なのでしょうか。

89:デフォルトの名無しさん
04/03/25 01:19
ニュー速で質問があったんでけど答えてあげてください。

C#(WINアプリ)を勉強していますがクラスについて教えてください。
public class A
{
メソッド1
}

public class B
{
メソッド2
}
この場合、class Aは、class Bのものに対してアクセスできますよね?
これは、class Aのなかでclass Bのメソッド2が使えるということで
しょうか?
もし、使えるなら、class Aの中でオブジェクト = new class Bとして
インスタンスか化してから使うのでしょうか?




90:デフォルトの名無しさん
04/03/25 07:38
>>89
class B のメソッド2が Public であれば、アクセスできます。
static メソッドでなければ、インスタンス化してからでないとアクセスできません。

91:デフォルトの名無しさん
04/03/25 07:43
とてもどうでも良い質問なんですが
クラスと関数の使い分けが分りません

こうゆう場合はクラス(関数)にする

っていうお約束なんかあるんですか?



92:デフォルトの名無しさん
04/03/29 20:09
クラスライブラリプロジェクトでせっせと /// <summary> などのコメントを記述しています。
同じプロジェクト内では記述したコメントがヒントに表示されるのですが、クラスライブラリを
参照設定した他のプロジェクトではヒントにコメントが表示されません(引数の型とかはちゃんと
出ます)。コメントまではヒントに出てこない仕様なんでしょうか。その割には System.何とかの
クラスにはちゃんとコメントが出てきますよね。何が違うのか。。。

93:デフォルトの名無しさん
04/03/30 04:28
>91
それは経験で身に付けるしかない。
一応コツとしては
・名前が付けられるものはクラスにする
・複数あるものはクラスにする
・動作の対象となるものは、その対象自身に仕事をさせる
とかかな?


94:デフォルトの名無しさん
04/03/30 07:47
>>92
ソースをコンパイルするときにXMLドキュメントファイルを出力しといて、
(コマンドラインコンパイルなら/docオプション)
hoge.dllに対してhoge.xmlって名前でhoge.dllと同じディレクトリに置いてhoge.dllを参照設定。


95:92
04/03/30 11:34
>>94
うまくいきました。ありがとう。

96:デフォルトの名無しさん
04/03/30 22:00
助けてほしい。何度もぐぐったりしているけど、XML読み込みが良くわからない。
例えば、以下のXMLファイルを読み込んで、出力するコードを教えてください。
正直、解説見てもわけがわからんです。これなら手で書いたほうが早いです。

◆出力例
一人目 名前「モナ山 茂名」 生年月日「2000年 2月29日」
二人目 名前「ギコ猫 義子」 生年月日「1900年12月31日」

◆XMLファイル
<?xml version="1.0" ?>
<list>
<person>
<name>モナ山 茂名</name>
<birth year="2000" month="2" day="29" />
</person>
(略)
</list>

97:デフォルトの名無しさん
04/03/30 22:11
PictureBoxの絵の余白部分にマスクをかけて
透過させることってできますか?

98:デフォルトの名無しさん
04/03/30 22:33
>>97
MakeTransparent

99:デフォルトの名無しさん
04/03/30 22:40
>>96
string xmlName = @"C:\Documents and Settings\****\XML ファイル名";

XmlDocument xdoc = new XmlDocument();
xdoc.Load(xmlName);
XmlElement elem = xdoc.DocumentElement;

int i = 1;
foreach(XmlNode person in elem.GetElementsByTagName("person"))
{
Console.Write("{0}人目 名前「{1}」 生年月日「{2}年 {3}月{4}日」\n",
i,
person["name"].InnerText,
person["birth"].Attributes["year"].Value,
person["birth"].Attributes["month"].Value,
person["birth"].Attributes["day"].Value);
++i;
}


100:デフォルトの名無しさん
04/03/30 22:44
>>99
サンクスコ!foreachでperson要素の数だけループさせて、
personという変数に代入して、personのもつ
name要素の中身、birth要素のyear属性の値・・・を表示させているんですね。
Veryわかりやすい。ありがとうございました

101:デフォルトの名無しさん
04/03/31 17:56
早速今日、>>99氏のコードを試してみた。
ものすごく望みどおりに改造することが簡単だった。ありがとう。
なんかJavaScriptを使ったDOMと同じ感じでできたので簡単だった。
@ITとかで勉強してたけど、こんなに簡単にできるなんて、感動だった。
本当にTHANX!

102:デフォルトの名無しさん
04/04/09 14:46
this.Hide();を2回実行しないと消えてくれないんですけど何で?

103:デフォルトの名無しさん
04/04/11 16:29
今月、電話代ちょっと多すぎるんだけどなんで?

104:デフォルトの名無しさん
04/04/11 20:19
最近C#の人気がないと思う

105:デフォルトの名無しさん
04/04/12 00:18
いつに比べて?

106:デフォルトの名無しさん
04/04/18 17:27
Process p = new Process();
p.StartInfo.FileName = @"C:\program\katjusha.exe";
p.Start();

という感じで起動した子プロセスのウィンドウを
最小化したり、元に戻したり、隠したりするにはどうしたらいいですか?

起動前ならStartInfoで設定できると思うのですが

107:デフォルトの名無しさん
04/04/19 01:33
.NETは安全性重視だから、勝手に別のソフトのウィンドウを操作するのは良くなくて、
そういうことをしたいならやっちゃいけないことをやらなきゃいけなくて、
そうなると.NET以外の方法を使うことになる。

108:デフォルトの名無しさん
04/04/19 23:44
>>107
サンクス。となるとC++とか使うしかないんですか?

最小化しかできないソフトを通知領域に入れる(駐在させる)ためのソフトを
作ろうと思ったのですが…。

109:デフォルトの名無しさん
04/04/20 11:20
C#ではコマンドメッセージの代わりになに使えばいいんすか?

110:デフォルトの名無しさん
04/04/20 12:27
ツールバーのボタンをドラッグするとへこんだままになるのはなぜですか?

111:デフォルトの名無しさん
04/05/09 17:50
HTTPのプロキシサーバーを作成しようとしています。

.NETのクラスライブラリに、プロキシサーバー関係のクラスはあるでしょうか?探したところ、無さそうでした。
ない場合は、System.Net.Sockets名前空間のTcpListenerクラスを使えばいいのでしょうか?

112:デフォルトの名無しさん
04/05/09 18:01
>>111
System.Net.WebProxyクラス。

113:111
04/05/09 18:08
>>112
そのクラスは、こっちからどこかにアクセスするときに利用するプロキシを設定するクラスではないですか?

114:デフォルトの名無しさん
04/05/15 17:12
メモリ配列で構造体を初期化したいんだけど
C/C++で
struct_type s;
char work[256];
memcopy(&s,work,sizeof(struct_type));

みたいなことってC#でどうやってやったらいいんですかね?

115:デフォルトの名無しさん
04/05/18 12:18
その例は構造体の初期化じゃなくて配列の初期化だから

116:デフォルトの名無しさん
04/05/19 15:33
 Bitmap bitmap=new Bitmap(ファイル名);

 PictureBox p =new PictureBox();
Graphics g = p.CreateGraphics();
g.DrawImage(bitmap,new Rectangle(0,0,100,100));
g.Dispose();
という非常によくみられる方法で画像を表示したいが、一瞬画像が現れただけで
すぐに消えます。だから、普段は、p.Image=bitmap のようにプロパティで表示しています。
どーすればGraphicsで表示できますか?

117:デフォルトの名無しさん
04/05/19 16:36
OnPaintをオーバーライドして引数のGraphics使えば望みの動作にできる

118:デフォルトの名無しさん
04/05/19 19:12
>117
ありがとうございます。
確かに一個のフォーム全体に画像を表示するとき、重なっていてもうまく表示できました。
でも、最終的には画像ビューワーのようにサムネイルをたくさん表示したいのです。
そのときOnPaintを何度も呼び出す方法もよくわかりません。
Graphicsで表示したときにずっと表示する方法はないのでしょうか。
できるからこそ、GraphicsのインスタンスをDrawImageするのが一般的描画方法
とされているはずなので。私の場合そもそも一瞬しか表示されません。
なぜ?





119:デフォルトの名無しさん
04/05/19 20:21
>>118
OnPaintは自分で呼ぶものじゃなくて(フレームワークから)呼ばれるもの。

120:デフォルトの名無しさん
04/05/19 21:09
C#でゲームのようなグラフィックを扱うにはどのようなコンポーネントが
必要ですか?サンプルコードもおねがいします

121:デフォルトの名無しさん
04/05/19 22:10
>>120
↓この辺り?
C#でDirectX9 初心者の館
スレリンク(tech板)

122:デフォルトの名無しさん
04/06/03 17:52
いま、オブジェクト指向の勉強をしようとおもって、C#でライツアウトを作っています。
Buttonクラスを25個集めてboardというクラスを作りました。
そこで思うのですが、「全ての色が消えた」というような「審判」の役割は
誰がするのですか? judgmentクラスを作ったとして、
ボタンが押されたというのはjudgmentクラスにどうやって伝えるんでしょう?

123:デフォルトの名無しさん
04/06/03 20:29
>>122
ひょっとしてVC#使ってない?

124:デフォルトの名無しさん
04/06/03 21:28
>>123
VC# 2003ですよ。

今木が付いたけど、mybutton_click見たいな関数から 毎回 審判を呼び出すものですか?
結構無駄が多いような記もしますが、それがOOと考えて良いの?


125:デフォルトの名無しさん
04/06/03 22:24
ビジュアルなんたらを使ってる人はビジュアルな部分は簡単にこなすけど、
そうも行かない部分はぜんぜん出来ないでいるからね。
おれも似たような経験がある。
ちなみに答えはeventとdelegateなんだけど、
ビジュアルには行かないkらMSDNみてコード書いてね。

126:デフォルトの名無しさん
04/06/04 02:33
ようやくC#なんですけど、
とりあえず.Net Framework 1.1 SDKを拾ってきてインスコしました。
ドキュメントも更新しました。
んだら、PlatformSDKのドキュメントと.NetSDKのドキュメントの
インデックスとコンテンツが表示されなくなってもたんです。
dexploreの仕組みがようわからんので困ったチャンなのです。
VS.Netは金なくてあかんです。
ドキュメントがみずらくてかないません。たちゅけて。

127:デフォルトの名無しさん
04/06/04 02:34
>>126
フィルタ?

128:デフォルトの名無しさん
04/06/06 22:38
listviewとimagelistを使ってサムネイル表示したいのですがうまくいきません
listView1.View=View.LargeIcon;
imageList1.ImageSize = new Size(90, 90);
imageList1.Images.Add(Bitmap.FromFile("ファイルのパス"));
listView1.LargeImageList = imageList1;

foreachでimagelistに画像を格納して、listviewにimagelistをくっつけたんですが
画像が表示されません。何か間違ってますか?

129:デフォルトの名無しさん
04/06/07 21:28
XMLからデータを読み込んで、DataGridに表示させたいのですが、
色々検索してもDataGridの使い方が分かりません。
[C# DataGrid]とかで検索しても、データベースサーバから読む場合ばっかりで・・・

130:デフォルトの名無しさん
04/06/07 22:26
>>129
GotDotNet Japan Student コラム 「XML プログラミングを始めよう」
URLリンク(www.gotdotnet.com)

DataSet の XML 機能

131:デフォルトの名無しさん
04/06/08 00:06
クリックとかのイベント時に音を鳴らしたいのですが、どうすれば?

132:デフォルトの名無しさん
04/06/08 17:26
>>128
偶然通りかかったので答える。
ListView にアイテムを追加して、イメージインデックスを指定しなきゃ。
あとサムネイルなら GetThumbnailImage で適当に作ってやんなきゃダメじゃん。
SDKドキュメントの"ListView.LargeImageList プロパティ "のとこのコード見てみて。
もう来ないので質問されても答えられないけど、がんばってね。

133:デフォルトの名無しさん
04/06/10 06:01
もう来ないとか言うな。無責任な奴は来るな。社会のごみ同然。


134:デフォルトの名無しさん
04/06/10 10:33
>>133
別に最後までずっと相手してあげなきゃならないというわけでもないと思うけど。
だいたい説明すればあとは自分でなんとかするでそ。

135:デフォルトの名無しさん
04/06/10 15:38
インテリセンスのメソッド説明をもっと早くポップアップさせるにはどこいじればよいでしょうか?

136:デフォルトの名無しさん
04/06/10 16:22
スマソ。C#というよりVS.NETの話でした。

137:デフォルトの名無しさん
04/06/16 14:13
CheckedListBoxを既にItems.Addで追加済みなんですが、この内容をコードで順番にCheck,Uncheckするにはどうでればよいでしょうか?

138:デフォルトの名無しさん
04/06/17 19:15
リフレッシュレートの変更はAPI使わないとだめなんでしょうか。
そもそもそんなもんを作るなって言語なんでしょうか。
意外と出来ないことが多くてびっくりしてます。

139:デフォルトの名無しさん
04/06/18 03:03
C#.NETで開発しています。exeからdllを呼んでいてdllもC#で作っています。
dll内にステップインで入ってデバッグしたいのですが、入れるときと入れないとき
があります。何が原因でしょうか?
dllはグローバル アセンブリ キャッシュにインストールして使っています。

140:139
04/06/18 08:08
dllがデバッグだったりリリースビルドだったりしてるんでないの

141:140
04/06/18 08:09
ちがう。>139としたかったの...orz

142:139
04/06/18 21:10
>>140
レスありがとうございます。今日やっと分かったのですが
exeと同じところにdllを置いたらできました。
ビルドのオプションでローカルコピーをtrueにしたりfalseに
したりしていたようです。

143:デフォルトの名無しさん
04/06/25 06:59
教えて下さい。
Windows.FormでGUIアプリを作っているとします。
編集メニューでコピーにCtl+Cを割り当てて、
とあるコントロールにはこのメニュークリックのイベントで
処理したいんだけど、別の(例えば普通のテキストボックス)には
デフォルトのコピー処理をさせたい。
でないとそれぞれのコントロールごとに処理を書くはめになるので。
必要ないコントロールの場合はイベントをスルーすればいいんでしょうが、
どう書けばいいんでしょうか?

144:デフォルトの名無しさん
04/06/25 07:11
上げ忘れてた。。

145:デフォルトの名無しさん
04/07/02 21:47
タイマーの使い方を教えてください。

あるボタンを押した時から、1000msごとにのこり時刻を
[10秒経過 / 残り170秒] というように表示させたいです

146:デフォルトの名無しさん
04/07/02 21:50
あげわすれた

147:デフォルトの名無しさん
04/07/02 21:59
>>145
「シンプルな時計」でやってるよ
URLリンク(homepage3.nifty.com)

148:デフォルトの名無しさん
04/07/02 23:47
>143
きれいにやるならそういうフレームワークを作る
そすると他のでも使える

どこまでやるかは時間次第

149:デフォルトの名無しさん
04/07/03 09:10
とりあえずVisualStudio2005のC#の言語仕様に拡張があるのかどうか知りたいのですが、
VisualStudio2005言語仕様の概要について書かれているホームページがあったら教えてもらえませんか?


150:デフォルトの名無しさん
04/07/03 09:40
>>149
URLリンク(lab.msdn.microsoft.com)

151:http:// v019240.ap.plala.or.jp.2ch.net/
04/07/03 10:46
guest guest 

152:デフォルトの名無しさん
04/07/04 15:57
Windowアプリ/Consoleアプリ兼用のアプリが作りたいんですけれど
System.Console.Write 等の入出力を起動したConsoleアプリの入出力にする方法しりませんか?


153:デフォルトの名無しさん
04/07/04 18:41
>>152
どういう意味か良く分からないんだが…

154:デフォルトの名無しさん
04/07/09 17:42
textBoxに半角数字しか入力できないようにする方法はありますか?
ImeModeをOFFにしてみたけど、これじゃ半角英数字になってしまうんです。

155:デフォルトの名無しさん
04/07/10 01:06
調べろ。わからなかったら自分で作れ

156:デフォルトの名無しさん
04/07/10 01:37
よぅ。カスども。
俺C#やったことないんだけど、質問してもいい?
みんなC#ってなにに使ってんの?
「ネイティブコード吐けるJava」みたいな認識で買おうか迷ってんだけど、
そんなノリで買ってもいいものなんですか?

157:デフォルトの名無しさん
04/07/10 01:48
theSpoke効果だな

158:デフォルトの名無しさん
04/07/10 02:52
>>156
10個は買えバカ

159:156
04/07/10 03:29
買うなら1個でいいよ。
やっぱASPで使ってんの?
それともクライアントアプリ?
どうなのよ。

160:デフォルトの名無しさん
04/07/10 09:29
それを聞いて何かが変わるのか?

161:デフォルトの名無しさん
04/07/10 10:30
> 「ネイティブコード吐けるJava」みたいな認識

全然違う

> やっぱASPで使ってんの?

ASP.NET か?

> それともクライアントアプリ?

どっちもだろ。


162:156
04/07/10 12:47
>>160
あー、「結局どーしてーのよ?」みたいななるわな。
具体的にはC/Sタイプのアプリのクライアント側を何で作るか迷ってるのよ。
仕事の合間の趣味の話だから手ごろそうなC#がいいのかなと。
どんなん作りたいかっていうと、MSメッセンジャーみたいのだと思ってくれればいいな。

>>161
全然違うんか。
今まではクライアントアプリっつーとVCかDelphiか、まぁVBとかだったわな。
VCしかできねーけど。
んでひょっこりでてきたC#はどーなのよと思ってな。
Javaでもいんだけど、インストールの説明に「J2SE1.4ランタイムが必要です」って書くのと、
「.NETFrameforkランタイムが必要です」って書くのとじゃちょっとイメージ違うしな。

163:名無しさん@そうだ選挙に行こう
04/07/11 10:34
terrarium1.2になりますた

URLリンク(www.terrariumgame.net)

164:名無しさん@そうだ選挙に行こう
04/07/11 12:50
>>162
次期VS.NET(2005)は単体言語版(C#だけとか)で
Web(ASP.NET)機能を除いたグレードのものが格安で
出るらしいです。

趣味ならこれ使ってC#の非Webアプリを創るのが
非常に快適ではないかと思う。VCできるならなおさら
VB.NETに走る必要もないわけだし。

一つだけ問題があるとすれば、2006〜2007年予定の
次世代Windows(Longhorn)までは.NETFrameworkが
デフォのAPIじゃないことだろう。なのでフリーウェアとか
シェアウェアで早期にアプリを公開するつもりなら
これは向いていない。


165:名無しさん@そうだ選挙に行こう
04/07/11 13:28
C#にはウニオン型は無いの?

166:名無しさん@そうだ選挙に行こう
04/07/11 13:45
struct でオフセット弄る

167:名無しさん@そうだ選挙に行こう
04/07/11 15:14
int?ってなんか萌えるな

168:156
04/07/11 20:52
>>164
素敵情報サンクス。
サーバ(C++)とクライアント(Java)で作りつつ、
教えてくれた安価モデルが発売されたらクライアントをC#に移植
みたいな方向で考えてみるよ。

時期OSで.NETFrameworkが標準じゃなくなるってのは寝耳に水だけど、
さすがにバンドルされてないとは考えられないから、
あまりそっちは気にしなくていいかもな。
でもちょっと怖いから調べててみることにする。

マジサンクス!

169:デフォルトの名無しさん
04/07/12 10:00
> 時期OSで.NETFrameworkが標準じゃなくなるってのは寝耳に水だけど

そんなこと誰も書いてないでしょ

170:デフォルトの名無しさん
04/07/12 15:03
>>165
なくなっちゃったよ、せっかくintやらのビット数固定にしたんだから、
その範囲でのみでても付けてもらえると便利っていうか、Cより安全確実でよかったんだけどね。
ちょとさびしい。
頑張ってstruct使ってビットフィールド操作関数作るしかないっすね。

171:デフォルトの名無しさん
04/07/12 15:56
>>169
WinFXのことだろ。


172:156
04/07/12 23:10
defaultとstandardはこの場合同意語にならんか?
それともそーゆーことじゃないのか?
なんにせよいろいろややこしそうだな。

173:デフォルトの名無しさん
04/07/14 16:27
生成済みのオブジェクトの型を調べて、
それの型と同じ型で new をする方法があったら教えてください。

class ClassA() { ... }
class ClassB() { ... }
...
class MyApp
{
  void test()
  {
    object [] list = { new ClassA() , new ClassB() } ;
    foreach( object i in list )
    {
      sub( list[ i ] ) ;
    }
  }
  void sub( object a )
  {
    「aの型=ClassA/ClassB」  localData = new 「aの型=ClassA/ClassB」() ;
    ...
  }
}

といった事をしたいのですが、System.Reflection を使えばできると聞いたのですが、
分りやすいサンプルがあったらよろしくお願いします。


174:デフォルトの名無しさん
04/07/14 16:40
>>173
object localData = a.GetType().GetConstructor().Invoke( new object [] {} );


175:デフォルトの名無しさん
04/07/14 17:02
>>174
有難うございます、助かりました。

176:デフォルトの名無しさん
04/07/14 23:14
>>175
でも、実装の仕方としては、class A, B を ICloneable にして Clone() メソッド書くのが普通な気が。

177:デフォルトの名無しさん
04/07/14 23:28
>>175
それでほんとに問題ないのかちゃんと確認した方がいいぞ。

178:デフォルトの名無しさん
04/07/15 06:59
>>176
リフレクションの使い方の取っ掛かりが欲しかったので、構わないんです。
コンストラクタ以外にもメソッドを呼び出すときに、もっと複雑なことになるし、この辺りは覚悟していましたし
いずれにしても template が実装されるまでの繋ぎなので。

179:デフォルトの名無しさん
04/07/15 07:06
>178
どうtemplateにからむんでしょう?個人的に興味

180:デフォルトの名無しさん
04/07/15 19:08
ダウンキャストを知らないだけだったりして…

181:デフォルトの名無しさん
04/07/15 20:30
C#の宿題スレはまだ無いみたいなのでここにて。

C#で簡易telnetを作れという問題です。通信の方法がそもそも分かりません

182:デフォルトの名無しさん
04/07/15 21:02
>>181
ソケット作れ

183:デフォルトの名無しさん
04/07/15 21:10
言語依存じゃない部分が分かってないんだろ?

184:デフォルトの名無しさん
04/07/15 21:11
>>181
TCPで接続してTELNETプロトコル話せばいいだけ

URLリンク(www.google.co.jp)

185:デフォルトの名無しさん
04/07/20 13:26
IList をインターフェイスに持つオブジェクトでシリアル化する時、上手く行かなくて地団駄踏んでいます。

System.Runtime.Serialization.Formatters.Soap.SoapFormatter
で、オブジェクトをXmlにシリアライズする時は ISerializable でカスタマイズできるみたいですが、

System.Xml.Serialization.XmlSerializer
で、オブジェクトをXmlにシリアライズする時でカスタマイズできる方法は無いんでしょうか?
知っている人いますか?

IList を入れていると、XmlSerializerが頑張っちゃって自動的にシリアライズしてしまうみたいで・・・
IListが入っていても普通のクラスのように振舞わせる事はできないのでしょうか?

186:デフォルトの名無しさん
04/07/20 15:14
>>185
取りあえず簡単なIListを実装したコレクションを作ったけど普通にシリアライズ・デシリアライズできたぞ。

XmlSerializerは手軽に使えてカスタムしにくいのが特徴なので、まあいろいろ勘案して。
シリアライズ用の別クラスを作るとか。

187:デフォルトの名無しさん
04/07/20 15:23
あ〜、>186の一行目はちょっと勘違いというか見当違い。無視して。

188:デフォルトの名無しさん
04/07/20 15:23
>>186
あぅ、書き損じたんですが、添え字にマイナス値を使えるようにするとアウトなんですよ。
ヘルプを見ると、this[int]インデクサプロパティーを見ているようで、Countとセットで
動作しているみたいなんです。
当然動作するわけも無いのですが、ここでIListを見て勝手に動作されるとちょっと具合が悪いので、
この機能に寝ていてもらいたいのですが、手段が見つからない・・・・

189:デフォルトの名無しさん
04/07/22 11:01
単純に足し算するだけのメソッドなんですが、
public int Add()
{
return 10+10;
}
下のように使うと、Add()の戻り値は変数aに入りますよね。
public void Test()
{
int a = Add();
}
以下の場合だと、Addの戻り値はどこへ格納されるんでしょうか?
publi void Test()
{
Add();
}

190:デフォルトの名無しさん
04/07/22 11:03
そのまま破棄されるだけだが。

191:デフォルトの名無しさん
04/07/22 12:31
C系言語の特徴で
int main()
{
10 ;
}
とやっても、文としては正しいと認識されます
と、書こうとして、C#でやったら、意味が無いって怒られました。
さすがにチェックすることにしたみたいですね。

192:デフォルトの名無しさん
04/07/27 20:11
public int hoge; //hogeは1から100をとる
上の場合、publicだから外からどんな値が来るかわかりません。
hogeに値が代入された時に、hogeが正しい値かどうかを調べるにはどうしたらいいんですか

193:デフォルトの名無しさん
04/07/27 20:16
>>192
プロパティにしてsetアクセサの中でチェックする。
つかまさにそのためにプロパティがあるんだが。

194:デフォルトの名無しさん
04/07/27 20:17
プロパティにする

195:デフォルトの名無しさん
04/07/27 20:28
set{ if(value >= 1 && value<=100) hoge = value; else throw new FormatException(); }
みたいにすればいいんですね。なるほど

196:デフォルトの名無しさん
04/07/27 20:31
どうでもいいがその例だとArgumentOutOfRangeExceptionの方が妥当だな。

197:デフォルトの名無しさん
04/07/31 15:21
>>195
public int hoge {
  set {
    if (1 <= value && value <= 100)
      hoge = value;
    else
      throw new ArgumentOutOfRangeException();
  }
}

ちょっと無理っぽいが、通るのか?

198:デフォルトの名無しさん
04/07/31 18:44
GDI+はGDIより遅いって本当ですか?

199:デフォルトの名無しさん
04/07/31 19:54
>>198
自分で作って確かめろ、タコ

200:デフォルトの名無しさん
04/07/31 20:58
>ちょっと無理っぽいが、通るのか?
なんで?

201:198
04/08/01 09:38
>199
GDIはBitbltで
GDI+はGraphics.DrawImageで
確かめて良いですか?

202:デフォルトの名無しさん
04/08/01 11:55
GDI+は長角まで待つべし

203:デフォルトの名無しさん
04/08/01 12:31
リフレクションを使ってラムダ式を動的に作りたいのですが、
参考になるHPや良い方法があったら教えてください。
例えば、正規分布関数のクラスが、以下のように存在していて
public class DistributionFunctions
{
 public static dobule Normal( double x , double a , double v )
 {
  return 1.0 / Math.Sqrt( 2 * Math.PI * v ) * Math.Exp( -(x-a)*(x-a)/( 2 * v ) ) ;
 }
 ...
}

やりたい事は、
delegate double DoubleToDoubleDelegate( double x ) ;
public class DistributionDelegates
{
 static DoubleToDoubleDelegate MakeNormal( double a , double v )
 {
  ここに手際よく大量生産できるコード
 }
}

使い方は
void hogehogeMethod()
{
 DoubleToDoubleDelegate df = MakeNormal( 0.0 , 1.0 ) ;
 y = df( 0.0 ) ;// ここで y = Normal( x , 0.0 , 1.0 ) が呼び出される
}


204:デフォルトの名無しさん
04/08/01 16:03
>>203
よくわからんけど、こんなこと↓がしたいの?

using System;
public class DistributionFunctions {
double a;
double v;
public DistributionFunctions(double x, double y){
a = x;
v = y;
}
public double Normal( double x )
{
return 1.0 / Math.Sqrt( 2 * Math.PI * v ) * Math.Exp( -(x-a)*(x-a)/( 2 * v ) ) ;
}
}
delegate double DoubleToDoubleDelegate( double x );
class Hoge {
static DoubleToDoubleDelegate MakeNormal( double a , double v ) {
//ここに手際よく大量生産できるコード
DistributionFunctions f = new DistributionFunctions(a, v);
return new DoubleToDoubleDelegate(f.Normal);
}
static void Main() {
DoubleToDoubleDelegate df = MakeNormal( 0.0 , 1.0 ) ;
double y = df( 0.0 ) ;// ここで y = Normal( x , 0.0 , 1.0 ) が呼び出される
Console.WriteLine("y = {0}", y);
}
}

205:204
04/08/01 16:27
public class DistributionFunctions {

の{の前に全角スペースが入ってた。。。鬱

206:デフォルトの名無しさん
04/08/01 16:28
C#でGDIをつかうすべはあるのか?APIの直たたきならGDIをつかえる?

207:デフォルトの名無しさん
04/08/01 18:33
>>204
方法は問わないんですが、そうです、そんな感じです。
そこで、関数の引数を確保するクラスを作る必要がありますよね。
関数の数が多くて、これを全部自動生成してしまいたいんです。


208:204
04/08/01 20:00
>>207
> そこで、関数の引数を確保するクラスを作る必要がありますよね。
> 関数の数が多くて、これを全部自動生成してしまいたいんです。
204の例を使っても、好きなだけ関数は作れるけど。。。↓こういうことではない?

static void Main()
{
double d1 = 1.0; // 数字は適当
double d2 = 1.0; // 数字は適当
DoubleToDoubleDelegate[,] df = new DoubleToDoubleDelegate[10,10];
for(int i=0; i < 10; i++, d1 += 0.2){
for(int j=0; j < 10; j++, d2 += 0.2){
df[i,j] = MakeNormal( d1, d2);
}
}
for(int i=0; i < 10; i++){
for(int j=0; j < 10; j++){
double y = df[i,j]( 0.0 ) ;
Console.WriteLine("y = {0}", y);
}
}
}


209:デフォルトの名無しさん
04/08/01 21:52
>>208
ども、お手数掛けてすみません。
対象となる関数は、正規分布関数のようにパラメータ二つだけとは限りませんし、
今後、多変数に対応するにあたって、このまま場当なやり方で行きますとプログラムの保守が危機的になると考え
第一段階として、現在はC#のソースコードを自動生成するプログラムを作って対応しています。
しかし、これも必ずしも良い方法とも言えず、もっと効率的にプログラムできる方法として、
色々探している内にリフレクションという物を使ってみようかと考えていました。
さっそく始めてみたのですが、これがチュートリアルの良いページがなかなか見つからなくて・・・・

ちなみに僕自身、ここに書き込む前に色々考えたのですが、
一般的なC#の構文を使った範囲内ではおそらく良い解決方法はないだろうというのが結論でした。


210:デフォルトの名無しさん
04/08/01 22:20
はじめまして、
C#でデータベースに関することを勉強しています。
ボタンを押すとアクセスに「123」というデータを追加するプログラムを書いています。
壁にぶつかりましたので、ご指導していただけませんか。

odbcDataAdapter1などの設定し、以下のボタンの内容を書きました。

odbcConnection1.Open();
odbcDataAdapter1.InsertCommand.Parameters["@ab"].Value="123";
odbcDataAdapter1.InsertCommand.ExecuteNonQuery();
odbcDataAdapter1.Fill(dataSet11);
odbcConnection1.Close();

すると
'System.IndexOutOfRangeException' のハンドルされていない例外が
system.data.dll で発生しました。


211:デフォルトの名無しさん
04/08/01 22:24
> 対象となる関数は、正規分布関数のようにパラメータ二つだけとは限りませんし、
> 今後、多変数に対応するにあたって、このまま場当なやり方で行きますとプログラムの保守が危機的になると考え
> 第一段階として、現在はC#のソースコードを自動生成するプログラムを作って対応しています。
これが結構まっとうな方法な気もしますが。。。

もしかして、パラメータが変わるだけではなく、どんな関数を作るかは
あらかじめ決まってない、ってことですか?
C++でいえば、boost::lambdaみたいなことをしたいのかなぁ?

> しかし、これも必ずしも良い方法とも言えず、もっと効率的にプログラムできる方法として、
> 色々探している内にリフレクションという物を使ってみようかと考えていました。
リフレクションで出来るかどうかはわかりませんが、一応参考に。

URLリンク(members.jcom.home.ne.jp)
URLリンク(www.microsoft.com)

212:デフォルトの名無しさん
04/08/01 23:01
>>210
ここにある例が参考になりませんかね。
URLリンク(www.microsoft.com)

213:デフォルトの名無しさん
04/08/02 08:36
普通に IDbCommand.ExecuteNonquery() はダメなの?

214:デフォルトの名無しさん
04/08/03 21:03
プログラムの構造をどうしたらいいのかが分かりません。
例えば、オセロプログラムを考えるとします。
オセロのマスの部分にButtonから継承したクラスMasuを使います。
Masuを8*8個集めた配列をBoardとします。
オセロゲーム ━ Board (集約する)━ Masu という風になっていますが、
Masuがクリックされた時に 隣のマスをひっくり返すかどうか走査するとしても、
Masuからは隣のMasuなんて分かりませんよね?
だからBoardに頼んで調べてもらいたいわけですが
どうやったらそうできるのかがわからないです。どうしたらいいのですか?

215:デフォルトの名無しさん
04/08/03 21:07
X 配列Board
O クラスBoard

でした

216:デフォルトの名無しさん
04/08/03 21:43
>>214
Masu に必要な機能は、
・そのマスの内容を保持
・画面に描画する
・クリックされたことを、Board に通知する
の3つでいいんじゃない?

ひっくり返すのは、Board でやればいい。

217:デフォルトの名無しさん
04/08/03 23:21
>>216
その三番目のboardに通知する方法が分からんですよ。

218:デフォルトの名無しさん
04/08/03 23:32
>>217
Clickイベント。

219:デフォルトの名無しさん
04/08/03 23:51
>>217
boardのメソッドの引数に自分を渡せばいい。

220:デフォルトの名無しさん
04/08/04 00:18
>214
もっと
PlayerとかTurnMasterとかJudgeとかつくれや。Masuはいらん

221:デフォルトの名無しさん
04/08/04 00:53
>>220
高度すぎ。質問者をみて答えてやれよ。

222:デフォルトの名無しさん
04/08/04 00:56
>221
書き込んだ後そう思った.すいません。

Masu作るときにボードを引数で渡してそれ使う.それかイベント

223:デフォルトの名無しさん
04/08/04 23:39
こういうのってできるかな?
void Hoge( params object [] arg )

の ref バージョンで
void Hoge( ref object arg0 , ref object arg1 , ref object arg2 ... ) ;

の様な物。
必要個数分オーバーロードするしかないかな?

224:デフォルトの名無しさん
04/08/05 00:33
コントロールのクライアント領域について質問です。
以下のような Panel を継承したクラスをつくりました。

public class PanelEx : System.Windows.Forms.Panel
{
 public PanelEx() { }

 protected override void OnPaint(PaintEventArgs e)
 {
  base.OnPaint (e);

  Pen p = new Pen(Color.Black, 1);
  e.Graphics.DrawRectangle(p, this.ClientRectangle);
  p.Dispose();
 }
}

この PanelEX クラスのインスタンスを、普通に Form1 の
コンストラクタ内で生成したところ、画面には PanelEx の
左側と上側にしか線がひかれません。

なぜでしょうか?また、どうすればちゃんと矩形が描かれますか?

225:デフォルトの名無しさん
04/08/05 00:55
>>224
はみ出て見えないので矩形を小さく、例えば幅と高さを-1にしたりする。

226:224
04/08/05 01:29
>>225
ええええー。なぜそんな仕様になってるんでしょうか?

227:デフォルトの名無しさん
04/08/05 02:00
>>226
厨避けの為。

228:デフォルトの名無しさん
04/08/05 02:03
>>226
別におかしくないよ。

URLリンク(www.microsoft.com)

229:デフォルトの名無しさん
04/08/05 10:20
>>220
ウヒャー
220さんの高度な設計だと、どんな風になるんですか?
コードをつけながら説明してほしい・・・

230:デフォルトの名無しさん
04/08/05 19:29
>>229
高度
コード




!?

231:デフォルトの名無しさん
04/08/05 22:23
超基本で悪いんだけど、
int i = Console.Read();
Console.WriteLine(i);

これでたとえば「2」を入力すると出力が「50」なんてなるんですが、なぜなのでしょうか?

232:デフォルトの名無しさん
04/08/05 22:31
>>231
コンピュータの中では、「文字」ってのは一定のルールで数字の列に変換されて扱われてます。
このルールのことをエンコーディング、数字(の列)のことを文字コードと呼んだりします。
んで、文字の "2" に対応するコードが 50 (16進数で 0x32) なわけです。

ファイルやネットワーク等での読み書きは、byte の列を使って行われるのが基本で、
.Net Framework で文字列からこのバイト列に(またはその逆に)変換するには、
Encoding クラス(のインスタンス)を用います。

233:デフォルトの名無しさん
04/08/05 22:31
P.S.
"2"という文字列から、数字の 2 に変換するには、Int32.Parse() などを使います。

234:231
04/08/05 22:36
>>232
文字コードを実数値にしないといけないんですね。
丁寧な即レスありがとうございます。

235:デフォルトの名無しさん
04/08/06 00:26
久しぶりにきたが、なんだかいいスレになってるじゃねーか!

236:デフォルトの名無しさん
04/08/06 07:42
コンソールはほとんど勉強してなかったから試してみたんだけど

char c = (char)Console.Read();

とすれば、そのまま表示できまっせ。MSDNだとintを返すことになってるから
まぎわらしいんだけどね。

237:デフォルトの名無しさん
04/08/06 07:43
こんにちは

今画像のサムネイル保存用に複数画像をまとめてひとつの
ファイルにしようとしています。
Aファイルサイズ・Aファイル・Bファイルサイズ・Bファイル・・・
みたいな感じ合成し、インデックスで呼び出そうかと思っています。
で、ふと思ったのですが、そういう複数のファイルをまとめてしまう
クラスって既にあったりするのでしょうか。
よろしければお教えください。よろしくお願いいたします。


238:デフォルトの名無しさん
04/08/06 09:33
Bitmap imageA = new Bitmap("A.bmp");
Bitmap imageB = new Bitmap("B.bmp");
Bitmap imageC = new Bitmap("C.bmp");

Bitmap bmp = new Bitmap(300, 100);
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(imageA, 0, 0);
g.DrawImage(imageB, 100, 0);
g.DrawImage(imageC, 200, 0);
g.Dispose();
bmp.Save("ABC.bmp");
bmp.Dispose();

imageA.Dispose();
imageB.Dispose();
imageC.Dispose();

239:デフォルトの名無しさん
04/08/06 10:42
そうきましたか・・・

Hash的に名前で簡単にストリームを取り出せるような
仕組みが既存クラスにないかなーとか思っていたのでした。

やはり頑張って自分で実装してみます。

ありがとうございました。

240:デフォルトの名無しさん
04/08/06 11:04
参照設定でvjslib.dll(Microsoft Visual J# .NET Class Library)を追加して、java.util.zipで

241:デフォルトの名無しさん
04/08/06 11:42
!!!
なるほど!
早速やってみます。

ありがとうございました!


242:デフォルトの名無しさん
04/08/06 23:07
DirectX 9.0 SDK (Summer 2004)の日本語ドキュメントをインストールしたんだが、
VS.NET2003に反映されないのです。
なんでなんでしょう・・・そういう方他にいますか?

243:最凶VB厨房
04/08/06 23:20
まずは再起動

244:242
04/08/06 23:24
>>243
再起動もしたんですがダメでした。

245:最凶VB厨房
04/08/06 23:28
SDK本体は入れてるのよな?
まっわからんけど

246:デフォルトの名無しさん
04/08/06 23:32
>>242
フィルタか?

247:242
04/08/06 23:52
英語版ヘルプははいってるんですが・・・
フィルタもなしになってます。
本来ならVS.NET起動時に「ヘルプを反映中・・」とかでますよね?

248:242
04/08/07 01:01
連結ヘルプ コレクション マネージャで更新できました。
お騒がせしました。(・∀・)

249:デフォルトの名無しさん
04/08/07 11:42
>>242
DirectX9 SDK Summer2004の日本語ドキュメントってもう出てたの?

250:デフォルトの名無しさん
04/08/07 11:51
>>249
変な書き方しちゃいましたね。
2004入れてから日本語ドキュメント入れたら〜でした。スマソ

251:デフォルトの名無しさん
04/08/07 13:25
外部プロセスに確保した領域をPtrToStructureすると例外が発生するのは何故でしょうか。どうかご教授お願いします。
using HANDLE=System.IntPtr;using LPVOID=System.IntPtr;using SIZE_T=System.UInt32;using DWORD=System.UInt32;
class CMyApp:System.Windows.Forms.Form
{
  [System.Runtime.InteropServices.DllImportAttribute("kernel32")]
  static extern LPVOID VirtualAllocEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD flAllocationType,DWORD flProtect);
  DWORD PAGE_READWRITE=0x04;
  DWORD MEM_COMMIT=  0x1000;
  static void Main()
  {
    System.Windows.Forms.Application.Run(new CMyApp());
  }
  CMyApp()
  {
    this.Click+=new System.EventHandler(OnClick);
  }
  void OnClick(object sender,System.EventArgs e)
  {
    LPVOID 自分側の領域=VirtualAllocEx(System.Diagnostics.Process.GetCurrentProcess().Handle,(LPVOID)0,(DWORD)System.Runtime.InteropServices.Marshal.SizeOf(typeof(System.TimeSpan)),MEM_COMMIT,PAGE_READWRITE);
    LPVOID 他人側の領域=new LPVOID();
    foreach(System.Diagnostics.Process inc in System.Diagnostics.Process.GetProcesses())
      if("Explorer"==inc.ProcessName)
        他人側の領域=VirtualAllocEx(inc.Handle,(LPVOID)0,(DWORD)System.Runtime.InteropServices.Marshal.SizeOf(typeof(System.TimeSpan)),MEM_COMMIT,PAGE_READWRITE);

    System.Runtime.InteropServices.Marshal.PtrToStructure(自分側の領域,typeof(System.TimeSpan));//自分側の領域では例外は発生しない

    System.Windows.Forms.MessageBox.Show("次で例外発生");
    System.Runtime.InteropServices.Marshal.PtrToStructure(他人側の領域,typeof(System.TimeSpan));
  }
}

252:デフォルトの名無しさん
04/08/07 14:35
>>251
非Managedなプロセス空間にManagedな構造体を確保する意味がさっぱりわからないんだが。

URLリンク(dotnetjunkies.com)
とりあえず外部プロセスへのちょっかいの参照。

253:251
04/08/07 15:56
252さんアドバイスありがとうございます。
これをやりたい理由は、興味本位で出来るかどうか試したかっただけです。
とりあえず上のURLをよく読んで見ます。

254:デフォルトの名無しさん
04/08/07 18:02
おまいら、コールバックにデリゲートとインターフェースの
どっち使ってる?
JavaのGUIのリスナーみたいなケースなら、デリゲートの
方が何もしないメソッドまで記述しなくて済むし効率いいかな。

255:デフォルトの名無しさん
04/08/07 18:30
>>254
俺は Java 出身だから、ある程度一まとまりの処理をくっつけるならインターフェイス使っている
デリゲートは纏まり間が無くて、単体なら遣いやすいけど微妙

256:デフォルトの名無しさん
04/08/07 21:19
俺はデリゲート派

257:デフォルトの名無しさん
04/08/07 21:22
anonymous class は使えないが、anonymous delegate は使えるようになるので、
デリゲートにしておくのが無難なのでは。

258:デフォルトの名無しさん
04/08/07 23:45
非常に唐突な質問で申し訳ないが、C#で、というか.NET Frameworkで
各ドライブのボリュームラベルを取得するのってどうやるんだべさ?

なんかAPI叩くしかなかったら非常に鬱なので教えてエロイ人!

259:デフォルトの名無しさん
04/08/07 23:48
>>258
DriveInfo.VolumeLabel かな。
…… .NET Framework 2.0 だけど。

260:デフォルトの名無しさん
04/08/08 00:00
2.0で変更になったクラスの一覧ってないかな?

261:デフォルトの名無しさん
04/08/08 00:06
>>259
やっぱ2.0になっちまうのか・・・。
何故こんな基本的なもんが実装されてないんだと小一(ry

262:デフォルトの名無しさん
04/08/08 00:18
[DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
extern static bool GetVolumeInformation(
string RootPathName,
StringBuilder VolumeNameBuffer,
int VolumeNameSize,
out uint VolumeSerialNumber,
out uint MaximumComponentLength,
out uint FileSystemFlags,
StringBuilder FileSystemNameBuffer,
int nFileSystemNameSize);


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

5311日前に更新/230 KB
担当:undef