VB.NET質問スレ (Part21 ..
[2ch|▼Menu]
39:デフォルトの名無しさん
07/04/28 20:25:58
VBの方が実際によく使われてるけど
C#はC#→VB.NET, Java, C/C++, … と続けてどんどん習得していきやすい

40:デフォルトの名無しさん
07/04/29 01:43:25
>>39
まじで?
俺VB.NETから .NET入っクチだけど
世の中の流れはC#だなぁ・・・と思ってC#に移行したんだが
まぁ、結局仕事で両方使わないといけないので両方使ってるけど


41:デフォルトの名無しさん
07/04/29 12:41:18
言語の問題じゃなく、考え方さえちゃんとわかってればいいと思う。
VB.netでもUIに貼り付けて適当にイベントコード書くのじゃなくて
クラス設計とかを考えて使ってれば問題ないと思う。

42:デフォルトの名無しさん
07/04/29 13:10:27
しかしStrict = Onなんて意味ねえな、と個人的には思う。

周囲の目があるから意味ねえと思いつつStrict Onにしてはいるけどね。
Strict Onにしといてよかった、なんて思ったこと一度もないよ。

縮小変換を縮小変換と意識せずついうっかり書くなんてことあるか?
ありえねえw
だったら明示的に型変換することに何の意味があるんだよアホらしい。

ArrayListのアイテムにDirectCastを強制することで、突っ込んだ型と違う型に
キャストしてしまう可能性を減らせるか?
絶対ありえねえw
同じ場面ならやはりdestinationの型の指定を間違うだけだろ。

43:デフォルトの名無しさん
07/04/29 13:18:54
みんなお前みたいにちゃんと理解してやってるとは限らないだろ

44:デフォルトの名無しさん
07/04/29 13:30:40
まぁ、こういうアホを納得させるには誉めるのが無難だな。

45:デフォルトの名無しさん
07/04/29 17:17:35
っていうか、プログラム初心者はとにかく動くプログラムを作れるようになるのが先決。
そうじゃないと、どんな話も理解できない。

「プログラム初めて」っていう人にオライリー本薦めるバカも世間にはいるようだが。

46:デフォルトの名無しさん
07/04/29 17:39:23
作りたいアプリをとりあえずStrictオフでガーっと作ってみて、
動作もだいたい完成レベルになったので、
Strictオンにして暗黙の型変換してるところを全部書き直したが、
動作速度が全く変わらなかった。

47:デフォルトの名無しさん
07/04/29 17:41:53
レイトバインディングの弊害はコンパイル時に型に起因する問題を解決できないこと。
分かって書いてるならそっちの方が都合が良いことも多いんだがね。

48:デフォルトの名無しさん
07/04/29 18:27:15
クラス設計なんか考えなくていい。
使いたい機能が使いたいときに手順に従ってガーッと使うだけで動くプログラム書けるんだから。

49:デフォルトの名無しさん
07/04/29 18:29:56
釣れそうですか?

50:デフォルトの名無しさん
07/04/29 20:20:43
そういうのは移行とは言わないw
まあ、どっちでもって人はたくさんいるだろな


51:デフォルトの名無しさん
07/04/29 20:27:49
初心者にとっては、オフだととんでもないのを書いてしまうので有用。
上級者にとっては、まれにやってしまうミスを見つけられる場合があるので有用。
他の人の書いたプログラムを見るとき、あえてやってるのか、間違えてるのか明らかなので有用。
どう考えても有用。


52:デフォルトの名無しさん
07/04/29 20:31:59
オフだとインテリセンスが使いにくいし

53:デフォルトの名無しさん
07/04/29 21:05:37
あと速くなるのはレイトバインディングを減らせた場合で、
最初からまっとうにコーディングしてるなら変わらん。


54:デフォルトの名無しさん
07/04/29 21:22:19
値型をいっぱい使ってたら速くなるだろ
逆にいえばOffだと値型の意味がない

55:デフォルトの名無しさん
07/04/29 21:27:49
あほ

56:デフォルトの名無しさん
07/04/29 21:28:38
だからそういうのはまっとうに使ってない場合だろw

57:デフォルトの名無しさん
07/04/29 21:32:45
まっとうに使うって言って全部型指定したらStrict Onと同じだろw
Offだと型指定しなくても「まっとう」になっちゃうって話

58:デフォルトの名無しさん
07/04/29 21:32:51
>>54
こういう奴がいるからオンにしなければならない。

59:デフォルトの名無しさん
07/04/29 21:39:42
>>57
おまえオフの場合は型書かない前提なのかよ。

いや、普通は違うと思うぞ。
そんなインテリセンスも使えん状態じゃやっとれんだろ。


60:デフォルトの名無しさん
07/04/29 21:42:57
「オフだと値型の意味がない」って書いといてそうは読み取れん。
wとか書いてるしあやしいんだよ

61:デフォルトの名無しさん
07/04/30 01:52:27
どうしてレイトバインディングとか極端な話になるのかね。
CreateObjectでエクセルとか操作する場合を除けば、Strict = Offでも
レイトバインディングなんてわざわざする訳がなかろうに。

別に煽りとかそんなんじゃなく、純粋に興味があるから聞くけど
俺は>>42に書いたとおりStrict = Onに積極的な意義はないと思うけど、
それは間違いだという意見の人は、是非具体的にその理由を教えてくれないか?

62:デフォルトの名無しさん
07/04/30 02:43:32
んなもんどっちでもええわ。
サポート機能のひとつなだけで、間違いとかそういう問題じゃねーよ。

63:デフォルトの名無しさん
07/04/30 08:18:41
デフォルトでonになってるんだからあえてさわらんでもという感じだな

64:デフォルトの名無しさん
07/04/30 08:25:19
いや、なってないけど。。

65:デフォルトの名無しさん
07/04/30 10:16:15
型指定するのってデフォじゃないの?

66:デフォルトの名無しさん
07/04/30 12:16:48
今までVBでやってきて、VB.NETでの開発に移行するのですが(遅っ!)、
ランタイムライブラリとクラス・ライブラリをどう使い分けていますか?
一つのプログラムで、クラスライブラリなら全部クラスライブラリで統一
して記述していますか?

ある所では今までのVBで使えた関数を使って、別の所ではVBで使えた関数では
なく、クラスライブラリの関数を使うといった、2つを混合させて記述してもOKですか?


67:デフォルトの名無しさん
07/04/30 12:58:32
C#な人との共同の仕事じゃなきゃ別にいいんじゃない?
VBライブラリは将来なくなる可能性がある、とかMSは言ってるけど
どうせハッタリで実際はなくせないと思うし。

68:デフォルトの名無しさん
07/04/30 14:41:49
.NET2.0で最終進化だと言い切ってもらいたんだが

69:デフォルトの名無しさん
07/04/30 15:36:24
そろそろ新技術Orgが発表されます。

70:デフォルトの名無しさん
07/04/30 22:57:44
VB2005です。恐縮ですが質問があります。

テキストエディタをRichTextBoxを使って製作しているのですが、
Wordのように文書に段落番号を設定できるようにするには
どのようにすればよいのでしょうか。
箇条書きや段落のインデントの設定などはわかったのですが
段落番号がわかりません...。

よろしくお願いします。

71:デフォルトの名無しさん
07/04/30 23:20:09
標準では無理。
PARAFORMAT2 を EM_SETPARAFORMAT で投げることになるかな。めんどくさそ。

72:デフォルトの名無しさん
07/05/01 19:42:25
すみません。PHPからの移行者なんですが、PHPだと画像が1つあれば
それを拡大・縮小など簡単にできたんですが、VB.netでもできますか?

できれば、VBでつくりたいとおもっています。よろしくお願いします。

73:デフォルトの名無しさん
07/05/01 19:45:37
System.Drawing
あたり見てみるといいんちゃう?

74:72
07/05/01 19:52:09
>>73
どうもありがとうございます。vb drawingで検索したところ、
そのものずばりのURLがでてきました。実はサムネイル画像をつくりたかったんですが
その作り方がかいてあります・・URLリンク(www.atmarkit.co.jp)

どうもありがとうございました。助かりました。

75:デフォルトの名無しさん
07/05/01 21:16:46
HEX()やOCT()みたいな関数で2進数に変換してくれる関数は存在しないのでしょうか?

76:デフォルトの名無しさん
07/05/01 21:33:10
Convert.ToStringつかいなされ

77:デフォルトの名無しさん
07/05/01 21:57:00
ASPとCOMでHTTP通信のReadとかWriteとかあるんだけど、
送信は好きな時に送ればいいけど、受信はイベントでも発生するの??

78:デフォルトの名無しさん
07/05/01 21:59:25
すごい前衛的な日本語の使い方だなw

79:デフォルトの名無しさん
07/05/01 22:11:31
>>76
ありがとございます。
これって0000-0000みたいに出力のフォーマットを指定することはできませんか?

80:デフォルトの名無しさん
07/05/02 01:15:30
>>79

一例をあげると
string.format("0000-0000")
これじゃね?

もちろんほかにも色々あるけど、簡単なのはこれかな

81:80
07/05/02 01:16:34
間違えたwww
convert.tostring(""0000-0000"")
まぁオーバーロード一覧見てみればいいよ


82:デフォルトの名無しさん
07/05/02 08:18:06
恥ずかしい奴だなw
それって単なる0のプレースホールドしてるだけじゃないのか?
>>75をよく見ろよ

83:デフォルトの名無しさん
07/05/02 09:15:12
>>82
 あ〜>>79だけ見てた
 指摘トン

84:デフォルトの名無しさん
07/05/02 21:46:05
>>77
レスありがとうございます。
で本題の方は・・・

85:デフォルトの名無しさん
07/05/03 17:09:28
VB2005で質問です。
win32 APIを使って他のWindowにアクセスするプログラムを作りましたが、
終了してもプロセスが残ったままになります。
アンマネージリソースの開放(?)とかが必要なのでしょうか。
もし、必要ならば具体的にどうすれば良いのでしょうか?


86:デフォルトの名無しさん
07/05/03 17:25:21
プログラミングなんてやめてしまう、が正解。
たぶん才能ないし向いてないんだよ。
そんな質問の仕方をするようではね。

87:デフォルトの名無しさん
07/05/03 17:36:20
Application.Exit

88:デフォルトの名無しさん
07/05/03 17:54:24
解放でしょ

89:デフォルトの名無しさん
07/05/03 18:15:14
>>85です。
解放ですね。。。。
Application.Exit とか Dispose() とかも試してますが上手くいかないです。
VS2005のデバックモードでは何も問題ないです。(これは当然か。。)



90:デフォルトの名無しさん
07/05/03 21:53:07
>>86
ここに来る四角が無いw

91:デフォルトの名無しさん
07/05/03 22:03:29
>>89
スレッドが残ったりしてない?Environment.Exit でどう?

92:デフォルトの名無しさん
07/05/03 23:55:59
せめてこうすればよくわかるとは思うんだが
なにも想像がつかない

VB2005で質問です。
win32 APIの”A”を使って他の”Bにアクセスするプログラムを作りましたが、
”C”のような手順で終了しても”Dの”プロセスが残ったままになります。
アンマネージリソースの開放(?)とかが必要なのでしょうか。
もし、必要ならば具体的にどうすれば良いのでしょうか?


Aは使っているAPI
Bは外部のプログラムだろうけど呼び出しはどうしているのかなど(Shellで起動させた.Netのアプリ など)
Cは何をどのように終了させているか
Dは対象となるプログラム(Bプログラムなのか、そのAPIを使っているプログラム自身なのか)

べつに、こういう書き方が正しいわけじゃないけど
できるだけ詳しく書かないとエスパーじゃないんだし 叩かれるだけだぜ?

まぁ、>>89の状況から察するに自身のプロセスだろうけど
とりあえず終了するとき、ほかのWindowのインスタンスが残ってないかとか いろいろあると思うんだけどな

でもなんとなく・・・・>>91の予感がする


93:70
07/05/04 00:19:41
>>71
遅レスすいません。

おかげさまでできました...
教えて頂いてありがとうございました。

94:デフォルトの名無しさん
07/05/04 01:49:46
>>85です。

>>91さんのご指摘通りですっきりしました。 ありがとう。
Environment.Exit って知りませんでした。
大半の時間を【System.Threading.Thread.Sleep】している
お遊びプログラムなので、win32APIではなく、sleep中に
終了させてしまったということなのでしょうかね。
おかげさまで、デバッカと離すことが出来ますので良しとします。

95:デフォルトの名無しさん
07/05/04 02:01:02
なんじゃそりゃ

96:デフォルトの名無しさん
07/05/04 02:19:15
どっちにしろ>>94はPGとしてカスだな
知らないなら機能を調べてから使えよ
そのソフトの修正やバグ取りで尻拭いする人間のことを考えろ

Application.ExitとEnvironment.Exitの違いもどうせ調べてなさそうだし

97:デフォルトの名無しさん
07/05/04 02:20:32
趣味グラマなんでしょ

98:デフォルトの名無しさん
07/05/04 02:32:43
納得してしまった

99:デフォルトの名無しさん
07/05/04 10:00:07
すいません。全くの初心者ですが質問させてください。
何故VB.netのスレのテンプレのリンク先がC#ばっかりなんですか?

100:デフォルトの名無しさん
07/05/04 12:35:10
>>99
死ねカスが
100年ROMって勉強してから聞け

101:デフォルトの名無しさん
07/05/04 14:39:49
>>100
99じゃないけど、カス厨うざいよ。

102:デフォルトの名無しさん
07/05/04 22:04:15
超質問、これからVista用プログラム作りたいのだけど
Vistaのアカウント制御オン状態でコードサインが無いと実行するか毎回聞かれて
ウザいんだけど、作成したプログラムを配布するとしてどこからサインもらおう?
シェアウェア製作者とかどうしてるんだろう?

103:デフォルトの名無しさん
07/05/05 18:47:36
VB.NET2005の
いくつかボタンがあるフォームの
Form Availableイベントに
Button2.Focus()
を書いてもフォームが表示されたときにボタン2にフォーカスがいかないのはバグ?

104:デフォルトの名無しさん
07/05/05 19:10:22
>>103
Availableイベントなんて無いぞ。
たぶんActivatedのことだと思うが、そのときのCanFocusプロパティはFalseだから仕様だ。
Select()するかShownイベントでFocus()しろ。

105:デフォルトの名無しさん
07/05/05 19:33:30
そうActivatedだった

106:デフォルトの名無しさん
07/05/05 19:54:05
MSDNライブラリのFormメンバ説明で
Shown フォームが初めて表示されるたびに発生します。

初めて、という言葉と、たびに、という言葉があるが結局どういうことなんだ?

107:デフォルトの名無しさん
07/05/05 23:15:05
>>106
いや・・・そのままだと思うんだが・・・・・

108:デフォルトの名無しさん
07/05/06 00:07:50
(((Shown フォームが初めて表示される)*n)たびに)発生します。

109:デフォルトの名無しさん
07/05/06 01:20:02
初めては1回しかないのに
たびは何回もということであり

110:デフォルトの名無しさん
07/05/06 02:05:57
ここは日本語の解釈を質疑応答するスレになりました

111:デフォルトの名無しさん
07/05/06 02:25:59
つーか解説読めばわかるだろ

112:デフォルトの名無しさん
07/05/06 02:33:58
在日なんだろ?w

113:デフォルトの名無しさん
07/05/06 04:34:17
VB初心者ですが、以下の件に関し教えて下さい。
テキストボックスで数字を小数点以下3桁表示にするには
どのような方法があるのでしょうか?
また小数点をチェックする方法はどのように行えばよろしいのでしょうか?
(誤入力で小数点が2つ入力されるのを防止するため)

114:デフォルトの名無しさん
07/05/06 04:47:13
TextBox じゃないとダメなのか? NumericUpDown とか

115:デフォルトの名無しさん
07/05/06 12:13:15
>>114
可能であればテキストボックスが良いのですが・・・

116:デフォルトの名無しさん
07/05/06 13:15:18
1文字以上の数値の後 小数点があるかどうかチェックし、あれば以降の小数点はうけつけない
また、小数点がある場合以降3ケタしか許さない

とりあえずこのロジックをテキストボックスのチェンジイベントにでもいれてみれば?
これも実装できないんならちょっとそれ以前の問題かと…・
指定された文字があるかどうかは
instrでもつかえばいいっしょ

117:デフォルトの名無しさん
07/05/06 13:19:42
あぁ、VB6と間違えてたw
折角だからこっちのがイイ罠

string.substring

118:デフォルトの名無しさん
07/05/07 11:17:09
フォントにはBold Italic が選択できるフォントと
Boldしかないようなフォントがあると思いますが
これを判別するにはどのようにすればいいんでしょうか?

119:デフォルトの名無しさん
07/05/09 11:06:43
VB2005Expressを使ってます。よろしくお願いします。

URLリンク(dobon.net)
ここを読んでいて思ったのですが、「設定プロバイダの自作」というのを行えば
My.Settingsで設定ファイルが保存される場所を、実行ファイルがあるフォルダ内
などに変更できるでしょうか?全然検討違いなことを言ってるでしょうか?

120:デフォルトの名無しさん
07/05/09 21:10:04
できる。方向性は間違ってない。

121:119
07/05/10 09:42:35
>>120
ありがとうございます! きちんと勉強してみようと思います。

122:デフォルトの名無しさん
07/05/10 15:11:54
ごめん、ふとおもったんだけど
Windows.Formsにあるコントロールクラスの Controls.Remove(obj as control) についてです

例えば
Form1のControlsにForm2のインスタンスが格納してあって
Form1.Controls.Remove(Form2)
てやったばあい、Form2のインスタンスは
明示的にDisposeで開放予約もなにもしなくてもRemove側とGCで勝手に開放してくれて
こっちはその辺の処理は考えなくていいんでしょうか?
その辺の挙動がわからない・・・・

123:デフォルトの名無しさん
07/05/10 16:30:36
Controlsは単なる集合だから、そこから削除されても別に関係ないと思うが。
結果、誰も参照無くなってGCの対象になるかもしれないが。


124:デフォルトの名無しさん
07/05/10 18:08:15
初心者です。質問させてください

WEBサービス内でタイマーコントロールは使用できますでしょうか?

WEBサービスの処理の中で定期的に行いたい処理があるのですが。

ご教授よろしくお願いします

125:デフォルトの名無しさん
07/05/10 22:05:16
なんかおかしくない?


126:デフォルトの名無しさん
07/05/11 08:33:27
VBでコンソールアプリ書いてタスクで実行させる方が簡単じゃない?

127:デフォルトの名無しさん
07/05/11 09:27:05
>>125
そんな気がするよな・・・・・
サービスじゃねぇのか
とか思ったりするんだが・・・・・

128:デフォルトの名無しさん
07/05/11 11:55:50
2005でFlowLayoutPanelに10KByteX20ほどの画像を2列X10行で表示させ、スクロールできるようにしているんですが
スクロールする時に画像が綺麗にスクロールされず 見た目が悪くなっています。
なんかスクロール中に引き伸ばされたような感じになり、スクロールをやめるとすぐに正常に表示されます。
貼り付けたフォームのダブルバッファのOn Offは試しましたが効果がないような気がします。

どなたか解決策をご存知の方いらっしゃいませんか?
説明不足・・・かもしれませんが よろしくお願い致します。

129:デフォルトの名無しさん
07/05/11 12:25:45
>>128
その文章じゃ、君がやってることもやりたいことも誰にも伝わらないと思う。
エスパーがいれば別だが。

130:デフォルトの名無しさん
07/05/11 13:08:13
早くスクロールすると、再描画が間に合わずに
「スクロール中に引き伸ばされたような感じ」に描画されてるんじゃ
ないかと受信した。

解決策: PCを買い換える。

131:デフォルトの名無しさん
07/05/11 13:08:36
うわぁぁ
× 早く
○ 速く

132:デフォルトの名無しさん
07/05/11 13:18:55
>>129
ごめんなさい 説明がうまくできずにごめんなさい

>>130
そのとおりなんです
で、早くするというか スクロールバーをドラッグして引っ張ると
ゆっくりでも引き伸ばされたような感じになってしまいます。

PC買い替えは・・・ちょっと無理だと思います(;´Д`)
まぁ、開発側でもそれなりになるのでユーザー側でもそうなるんじゃないかって懸念があるので
ソフト側で出来る限りその減少を押さえ込みたいなと思いまして。

133:デフォルトの名無しさん
07/05/11 13:29:19
>>128
●グラボ買い換える Or ドライバを最新にする
●DataGridView使う

以上適当に言ってみますた

134:デフォルトの名無しさん
07/05/11 14:15:18
>>133
やっぱそんな感じになりますか(;´Д`)
まぁ、最悪時間かけてグリッドにでも展開するかなんかしたほうがいいのかもしれませんね・・・



135:デフォルトの名無しさん
07/05/12 04:03:03
>>134
うちではそんな現象にならないけど。
画像が重いんじゃねーの?

136:デフォルトの名無しさん
07/05/12 19:55:53
昔Access2000のVBAでできあいのアプリをいじったことある程度の者です。
先日思い立ってフリーになったというVisual Basic2005をインストールしました。
(はじめどこから落とすのかまるで見当つかなかった…)

で、フォームの開き方やIsNull関数の仕様の変更につまづきながらもなんとか目的のおもちゃは出来ました。
が、何も考えずプロジェクト名をWindowsApplication1で保存してしまって、そのまま発行したら
インストール時のアプリケーション名がWindowsApplication1になってしまいました。
そもそもこんなおもちゃ、setup.exeからインストールするような形態で配布するようなもんじゃないし…。

というわけで3つ質問があります

1.上記のようにsetup.exeからインストールするのではなく、普通のフリーソフトのように
  zipから解凍すれば即使えるような形態にするにはどうすればよいでしょうか?
2.発行される実行ファイルに好きなアプリ名をつけるにはどうすればよいのでしょうか?
3.このアプリで作ったファイルを実行するには.NET Framework2.0必須でしょうか?

宜しくお願いします。

137:デフォルトの名無しさん
07/05/12 21:14:40
そもそも発行する必要もない。


138:デフォルトの名無しさん
07/05/13 00:24:02
その知識で作った「目的のおもちゃ」が何なのか知りたい。
1と2は入門書を見ればすぐに載ってる。バージョン管理の方法まで。
3→必須です。

139:デフォルトの名無しさん
07/05/13 05:52:49
>>137
>>138
お答えをヒントになんとかわかりました。ありがとうございます。
まさかあんな奥底にこっそり作られてるとは思わなかった…。
名前もプロジェクトのプロパティだったとは。

140:デフォルトの名無しさん
07/05/13 09:02:47
よろしくお願いします。2005 Expressを使ってます。
TabControlコンポーネントでタブの幅をぴったりにする方法がわかりません。
URLリンク(www.imgup.org)
Paddingプロパティで、ある程度は幅を広げられるのですが、ぴったりにはなりません。
SizeModeプロパティをFixedにすると、どこかにタブ幅を決めるところがあるのかと
思っても、見つかりません。

ぴったりにする方法をよろしくお願いします。

141:デフォルトの名無しさん
07/05/13 10:21:56
>タブ幅を決めるところがあるのかと思っても、見つかりません。
見つからないのではなく、探す気がないだけでしょ。
TabControlメンバ一覧をよくみた方がいいよ。
人に教えられるより自分でみつけた方が気分いいでしょ


142:デフォルトの名無しさん
07/05/13 11:34:09
プラグイン用インターフェイスで使用可能な型について教えてください。

プラグイン機能の開発を試みています。
プロパティでFontオブジェクトをやりとりしたいと考えていますが
インターフェイスの記述で、System.DrawingがImportsできません。
どういった実現方法があるのか、教えてください。

Imports System.Drawing '←記述不可

Namespace Plugin
    Public Interface IPlugin
        ReadOnly Property MainFont() As Font '←で使用したい
    End Interface
End Namespace

VB2005stdです。よろしくお願いします。


143:142
07/05/13 11:45:20
>>142
自己解決しました。
参照設定すればOKでした。

144:デフォルトの名無しさん
07/05/13 22:30:23
VB2005を使っているのですが
フォームに様々な多角形や枠付線を描写する場合
PictureBox貼り付けてそれをイベントの方で各点のxy座標を指定して変形させて描写するしかないんでしょうか?
画面に対して縦横のラインが直角や平行ならいいんですが、斜め45C以外に書いたりする複雑な図形があるので少し手間取っています

あれだけボタンなどのアイテムがあるのならペイント系のアイテムもあってもよさそうなんですが、そういったものは存在しないんでしょうか?

どうかご助言の方をよろしくお願いいたします。

145:デフォルトの名無しさん
07/05/13 22:43:05
何を求めてるのかさっぱり分からん
取りあえず開発環境はお絵かきソフトじゃないぜ?

146:デフォルトの名無しさん
07/05/13 23:54:49
簡潔にいうとフォームに手軽に図形を描きたいという事です

現状はピクチャボックスを塗りつぶしてイベントのほうで描写をし直して
各点(四角形なら4点)の位置を調整して様々な図形に変形させているので各点の座標を調整するのに手間がかかってしまう・・。
普通に正方形だとピクチャボックスそのまんまの形でいいんですが
ダイヤ型や、星型、Σみたいな形などの複雑な形になると各々の点の座標を修正しては実行して確認の繰り返しをやっています。


ペイントで画像描いて貼り付けようともしましたが各図形の色を変更させたりしたいのでその枚数分を使うとなるとプログラム的に大きくなりそうなので自分で描写した方がいいのかなという結論に至りました。
こういう図形を描写しそれの色を変更などをしたいプログラムを作成する場合はどういった方法が一般的なのでしょうか?
こういったプログラムを作成されている方が折られましたら是非助言をお願いしたいです・・・よろしくお願いします。

147:デフォルトの名無しさん
07/05/14 00:01:17
Graphicsクラスを使用しています↑

148:デフォルトの名無しさん
07/05/14 00:04:15
正直、そんなこともできんのならプログラマなんてやらん方がいいと思うわ。。

149:デフォルトの名無しさん
07/05/14 00:05:46
誰だって初心者の時期はあるだろ

150:デフォルトの名無しさん
07/05/14 00:14:34
いや初心者だからわからんとかそんな次元じゃないな。
考える力が決定的に掛けているか、そうでなければ算数レベルの数学能力すら
ままならんのだろう。

いずれにしろプログラマとしては致命的だな。


151:デフォルトの名無しさん
07/05/14 00:23:43
>>150
どこで数学能力使う?

152:デフォルトの名無しさん
07/05/14 00:27:25
>>147-151
Graphicsクラスで初心者云々ということならよりもっと簡単な別な方法があるということでしょうか?

153:デフォルトの名無しさん
07/05/14 00:40:51
そうじゃなくて、その程度の思考力がないなら
プログラミング以前の問題があるだろうという話。

154:デフォルトの名無しさん
07/05/14 00:52:53
思考力ですか?
>>146の描写方法の考え方がおかしいということでしょうか

155:デフォルトの名無しさん
07/05/14 00:58:21
Graphics以外での描写方法を知りたいんなら思考力も計算能力もまったく関係ない気がするだけど

156:デフォルトの名無しさん
07/05/14 01:02:03
とりあえず

つpolygon

157:デフォルトの名無しさん
07/05/14 01:02:44
>ダイヤ型や、星型、Σみたいな形などの複雑な形になると各々の点の座標を修正しては実行して確認の繰り返しをやっています。

方眼紙に書いてからやればいいじゃね?

158:デフォルトの名無しさん
07/05/14 02:09:22
>>150
おまえアホだな。
>>146が職業プログラマとは限らんし、プログラムにわからない事があるだけで
自分の資質なんて考えちゃいないだろ。

中学〜高校と英語を勉強してきた普通の人たちが簡単な英語の翻訳を質問したら
「お前は通訳としては致命的だな」なんてコメントするか?

159:デフォルトの名無しさん
07/05/14 07:17:21
>>158がいいこと言った!

160:デフォルトの名無しさん
07/05/14 07:27:29
>>158
ウンコ触るな

161:デフォルトの名無しさん
07/05/14 09:43:30
どういうプログラムなのかが気になる。
お絵かきソフトもどきを作るのではなくて、あらかじめ決まった数種類の図形をボタンのクリックや
タイマーなどのイベントで色を変えたり図形を変えたりしたいということかな?
座標の指定は手作業しかないんじゃ?
あとは156に言った多角形を書くpolygonとか。多角形を塗りつぶすFillPolygonとか。



162:デフォルトの名無しさん
07/05/14 09:58:56
つうかもう固定で描画するなら画像はっつけろよwwwwww



163:デフォルトの名無しさん
07/05/14 12:40:32
>>158
日本語書けよ。

あのねえ、プログラミング(に限らないが)には「知識や経験」だけでなく
ある程度の「資質」が必要とされるんだよ。当たり前だろ。

単に知識や経験が不足しているのなら学習して補っていけば済む。
ここがそういう場所であることには俺は異論はないよ。

でも資質が欠けていたらどうしようもないよ。
何やったって最初から無駄。
155cm43kgの奴が相撲取り目指すようなもんで、本人にとっても不幸なだけだろ。

もちろんそれでもどうしてもやりたいんだ、っていうのなら別に勝手にすれば。
でも>>146みたいなこと聞いてるようじゃ何ひとつまともなプログラムなんて
書けるようにならないことは俺が請け負うよ。

164:デフォルトの名無しさん
07/05/14 12:46:34
すみません、返答遅れました

>>155-162
レスありがとうございます。

>>156
Polygonですか?
どういったものか調べてみたいと思います。

>>161
>あらかじめ決まった数種類の図形をボタンのクリックや
>タイマーなどのイベントで色を変えたり図形を変えたりしたいということかな?
簡単に言うとそういうことになります
それと図形の位置の調整はやはり座標を手作業でしかないんですね、分かりました
例えば多角形の場合、実際にコードを実行して描写を確認しないといけないので、そこに便利な方法が無いのかと疑問に思っていました。

>>162
確かに画像を貼り付けた方がフォーム上で簡単に位置を修正したりできるのですが
何分図形の数が多いので数*色数で大体で言うと100枚前後の画像が必要になってくるのですが
フォームにそれだけのピクチャボックスを乗せるとなるとやはり処理や動作に支障をきたすのではないのでしょうか

165:デフォルトの名無しさん
07/05/14 12:48:47
画像をファイルにしといてLOADすればよかんべ。
せめて、入門本ぐらいは読もうよ。
仕事でめったに使わない画像の読み込みとか出てるから。


166:デフォルトの名無しさん
07/05/14 12:54:18
まぁ背景色の変更はソリッドとかであれば結構簡単に出来るから画像でもいいならそれも可能かと・・・
ただ、それを拡大縮小になってくると微妙だけど(;´Д`)


167:デフォルトの名無しさん
07/05/14 12:58:42
他人に配布するかしないかにもよるけどなぁ。
フォームに百枚のピクチャーボックス??なんでその必要が?
>>165の言うとおりです。
例えばだけど、
一つのフォルダにまあ百枚なら百枚の図形を入れて、フォームロード
時に配列かなにかにそのパスを入れて、PictureBoxのImage.FromFile
で画像を切り替えればいいんじゃない?


168:デフォルトの名無しさん
07/05/14 13:01:04
100枚配布するのが嫌ならリソースにつっこんどけ

ちなみにこの方法のメリットはプログラムを直さずに画像の差し替えで対応できるという点
とうぜん変更勝手にされちゃうとかのデメリットもあるが・・・


169:デフォルトの名無しさん
07/05/14 13:21:01
>>165-168
ひとつのピクチャーボックスに代わり代わりで画像を読み込ませればいいという説明でしょうか?

それでしたらすみません、説明不足でした
100枚というのはひとつのピクチャーボックスに100枚の画像を入れ替えて表示するのではなく
フォームに位置が違う100箇所ぐらいのピクチャーボックスを配置してそこに画像を読み込ませてそれぞれ色を変化させたりして表示するということです。
100枚同時に表示させる必要があるんです。
色を変える場合はピクチャーボックスの中身の画像を色が違う画像とすりかえればいいのですが・・そういうことですよね?


170:デフォルトの名無しさん
07/05/14 13:23:44
あ、それとも
必要毎にフォルダから画像を読み込ませるということでしょうか
そういうやり方だと負担が減るのかな

171:デフォルトの名無しさん
07/05/14 13:49:23
1フォームに画像が100個程度あるってことでFA?
で、それらは同時に色が変わったりするの?
それとも個別に色が変わったりするのかな?
その辺の動作周りをもう少しkwsk


172:デフォルトの名無しさん
07/05/14 13:54:47
>>171
説明ということで書いていたので100まではないんですが大よそで60前後の様々な形の画像を表示させるつもりです
色は同時に変わったり、個別に変わりもします・・要するに個別ということですよね;

173:デフォルトの名無しさん
07/05/14 13:55:45
処理的に厳しいでしょうか;

174:デフォルトの名無しさん
07/05/14 13:59:09
質問者は名前欄に最初のレス番号入れてけれ。どれがどれか分からん

175:144
07/05/14 14:08:12
そうですね、すみません・・

176:デフォルトの名無しさん
07/05/14 14:58:34
フォームに60個のピクチャーボックス??
それをコードで書く気なの?すごい…。そんなプログラム組みたくない…。

まあ、するのなら同じ図形で色だけ違う画像ファイルを1セットにするか、
コードで書いてbrushesを変えて色を変えるかだろうけど。色をランダムに
変えていいのなら、コードの方がいいかもな。

フォームに動きを加えるのはいいことだと思うけど、一体どんなプログラムで
どんな人を対象に作ってるのか差し支えなければ教えてよ。

177:デフォルトの名無しさん
07/05/14 15:28:18
まぁあ60個を同じ処理にするってのならハンドラちょこっといじればいけるだろうけど
出来れば想定する最低環境も知りたいところであったりもする

つうか・・・勉強の為に60個のピクチャボックスフォームにのっけて画像表示させてみるってのテストしてみようw
メモリは画像の大きさにもよるだろうけどさ・・・・

178:デフォルトの名無しさん
07/05/14 15:54:36
>>176-177
やはり珍しいケースなんですね
私自身もVB初心者だしどうなるか・・。

処理に関しては仮に作ったプログラムで確認したんですが
Graphicsで図形作ったコードですと色買えなどの処理は関数を作ってやってあとは各々で読み出すだけで簡単にできました
ただ処理以前に座標で指定する多角形を60個作るとなると位置調整で頭が痛くなりそうです・・。

画像の場合はまだよく分からないので未知数ですが
とりあえず処理速度にしろ、作成方法にしろ色々教えていただいたことを試してみたいと思います。


179:デフォルトの名無しさん
07/05/14 16:02:07
>>178
> ただ処理以前に座標で指定する多角形を60個作るとなると位置調整で頭が痛くなりそうです・・。

前々から思っているんだが、ここがおかしいだろ。
一体何の調整がいるって言うんだ。

180:デフォルトの名無しさん
07/05/14 16:03:31
ちなみに一般的に有効にプログラミングをするとした場合
この例ですと
Graphicsで画像を描写する方法と、画像を読み込んで表示させるのはどちらが効率的だと判断できるんでしょうか?

181:デフォルトの名無しさん
07/05/14 16:05:37
>>179
多角形が一つ一つ形が違うのでその形を形取るための多角形の頂点の座標の調整と
それをフォームのどのあたりに表示させるかの座標の調整の二つです。

182:デフォルトの名無しさん
07/05/14 16:16:05
>>180
有効にって言葉も幅外広いからなぁ・・・
何かを取れば何かを失う部分もあるし

画像でやれば画像作るのはめんどくさいけど
後々変更してくれとか言われた時にコーディング量は減るし(考え方によればコーディングすらも必要ない 画像の追加・変更だけでよい)

自分で書けば融通の利く処理が出来るがその分修正にソフトの書き替えが必要だし

俺なら 表示させるサイズが固定であればこの場合、画像を選ぶ
完全に動的サイズになるなら自分で書く かな?


183:144
07/05/14 16:23:14
>>182
なるほど・・・
だとしたら図形は色は変わりますがサイズは固定なので画像の方がいいかもしれませんね
そもそもモニタ自体のサイズがまだ未定だったのでそこから決定していかないと画面座標でやってたらずれてしまいますね;
参考にさせていただきます、ありがとうございました。

184:デフォルトの名無しさん
07/05/14 16:25:53
>>183
あれだ、画像だけPNGとかで読み込んで背景色はバックグラウンドカラーという手もあるっちゃぁ・・あるとおもうんだ

185:デフォルトの名無しさん
07/05/14 16:28:03
図形はベクタデータで持っとけば色変えたり拡大したりするのも簡単なんじゃねえの?

186:デフォルトの名無しさん
07/05/14 16:32:30
>>185
俺もそう思う
けど、どうも質問者的に難しそうなので俺は簡単な実装方法を提案してみたさww


187:デフォルトの名無しさん
07/05/14 16:34:54
モニタの解像度依存でずれるとか言ってるし……
もうね……

188:デフォルトの名無しさん
07/05/14 16:39:44
ラベルに[m2]って書いて2の部分を上付けに指数表示にしたいんですがどうやればいいんすか?

189:デフォルトの名無しさん
07/05/14 16:40:43
>>150がプログラマとしては致命的なのは分かったからすっこんでろ^^

190:デフォルトの名無しさん
07/05/14 16:42:46
いまさらそんな遠距離レスつけなくても^^

191:デフォルトの名無しさん
07/05/14 16:44:23
>>188



192:デフォルトの名無しさん
07/05/14 16:56:43
>>190に言ってるんだよ^^

193:デフォルトの名無しさん
07/05/14 17:10:17
俺じゃねえよ^^

194:デフォルトの名無しさん
07/05/14 17:11:57
ばかまるだしだ・・・

195:デフォルトの名無しさん
07/05/14 17:12:06
そうやって書いたら[msup2;]っラベルのテキストに表示されるんですが…

196:デフォルトの名無しさん
07/05/14 17:15:18
それは書き方が悪いんだろ

197:デフォルトの名無しさん
07/05/14 17:20:18
>>193
墓穴掘らなくていいよ

198:デフォルトの名無しさん
07/05/14 17:22:43
ちゃんと>>191のとおりにかいたよー

199:デフォルトの名無しさん
07/05/14 17:24:32
>>195
専ブラとかのコピペしてたら超笑えるwwwww

へいほーめーとる
で変換してラベルに入力しろや

200:デフォルトの名無しさん
07/05/14 17:27:52
へいほうめーとるで変換できるんかいー!うまくできたわみんなありがつ

201:デフォルトの名無しさん
07/05/14 17:32:50
い・・・一体なんだったんだ・・・・(;´∀`)

202:デフォルトの名無しさん
07/05/14 18:11:01
2つのビットマップ(実際の画像と、モノクロのマスクパターン)を用意して透過処理を
したいんですけど、VB.NETでどう実現するのやらさっぱりで。

VC++6.0とかで BitBlt 関数使って描画するのとかはやったことありますのでその程度の
知識ならあります。誰かヒントとなるリンクだけでもいいですから教えてください。

できれば VS2003、.NET Framework1.1 の環境下で動くのでお願いします。

203:デフォルトの名無しさん
07/05/14 18:17:26
Graphicsでアルファブレンド っつうのはどうっすか?

204:デフォルトの名無しさん
07/05/14 18:35:03
>>202
GDI+はPNGをサポートしてる。
ここまで言えばわかるよね?

205:デフォルトの名無しさん
07/05/14 18:36:46
ああでも遅いから速度が必要なら自分でBitBltでマスク処理した方がいいかもね。

206:デフォルトの名無しさん
07/05/14 18:38:21
もひとつ忘れた。
別にPNG使わなくても、GDI+には透過色を指定する機能もある。

まあしかし、自分でこれだけ答えておいてなんだけど、
少しはMSDNライブラリ読めよ。

207:202
07/05/14 18:52:36
>>203-206
レスありがとうございます。

とりあえずマスクパターンを使うのじゃないですけど、MakeTransparent ってので
透明とする色を指定することで対応はできました。

マスクはどうやんのかまださっぱりですけど。

MSDNは・・・読んでみたんですけど、どこに必要な情報があるのかすらたどり着かなくて。
申し訳ございません。

もう開発から設計に移って5年ぐらい経つんですが、
「過去に似た様な処理をVC++で作ったことがあるから」って理由で借り出されたものでして。

オジサンもう疲れたよ・・・orz

208:デフォルトの名無しさん
07/05/14 19:01:53
>>207
ご苦労様w
マスク処理は.NETネイティブの機能だけでやるのはきついと思う。
描画サーフィスをビットマップに転送する機能がGDI+にはないからね。

つまりWin32のBitBltつかって昔ながらの方法でやるしかない。

209:202
07/05/14 19:11:06
>>208
>つまりWin32のBitBltつかって昔ながらの方法でやるしかない。

そうですか。その情報だけでもありがたいです。ありがとうございます。

最近の小僧どもはゆとり教育のせいか、開発言語が複雑になりすぎたせいかで
すぐに諦めて「できません」とかほざくもので・・・すみません、愚痴ですね。

今から自分の仕事やりますw

210:デフォルトの名無しさん
07/05/14 19:18:28
>>209
みると俺の環境は恵まれてるんだなぁ・・・と痛感する

211:デフォルトの名無しさん
07/05/15 07:42:55
できませんはただの報告だからいいんじゃないの?
やりたくありませんと言ったら鉄拳制裁ものだが。

212:デフォルトの名無しさん
07/05/15 09:51:44
>>211
出来るはずのものをできませんとかねーよ
>>209の例だと調べりゃこのスレでもでてた即いくつかの方法や代替案がでてくるだろう どれだけレベル低いんだよ
低いなら調べたなりに出来ない根拠や別の案があるけど、多分あの様子だとないんだろうな・・・


213:デフォルトの名無しさん
07/05/15 10:41:50
Delphi製の、Pchar型の文字列を渡すとPchar型の文字列が返ってくるDLLを使いたいと思い、
DLLを使う方法までは調べたのですが、データ型としてPcharが使えません。
VB2005から、Pchar型を使うDLLを使用する方法は無いでしょうか?

214:デフォルトの名無しさん
07/05/15 17:07:25
PCharいうたら短い文字列へのポインタだったか?
Charset=Charset.ANSIを指定してDllImportすりゃいい。
型はStringBuilderだ。

215:デフォルトの名無しさん
07/05/15 17:15:54
渡す方はStringで、受けとるほうがStringBuilderだな。
一つの引数で上書きされるなら、StringBuilderか。

216:213
07/05/15 18:35:56
>>214-215
ありがとうございます! 教えていただいた単語を手掛かりに頑張ってみます。

217:デフォルトの名無しさん
07/05/16 16:06:05
インターフェースなんですが、Implementsを書いたあとにIntelliSense見たいに
実装を挿入することって出来ないのでしょうか?

実装しないでビルドするとエラーの説明で、実装すべきメソッドが表示されるので
あっても良さそうなんですが。。。

218:デフォルトの名無しさん
07/05/16 16:14:19
質問です。

ローカル上のIPアドレスからホスト名を取得しようとしています。
2.0だとDns.GetHostEntryを使うようにとあったので

x = System.Net.Dns.GetHostEntry("**.**.**.**").HostName

このようにしていました。
Win2k上では正常にホスト名を取得していたのですが、XP上ではIPアドレスしか取得できません。

Resolveを使うと取得できたのですが、旧形式だと警告されてしまいます。
他に取得する方法はないでしょうか?
よろしくお願いします。

219:デフォルトの名無しさん
07/05/16 18:02:39
VB2005でアプリ作りました。で、匿名で公開したいんですけど、
これどこかにコンピュータネームやWindowsのユーザーネームが埋め込まれてるってことはないですよね?
わけわからずにClickOne使った時、勝手に上記が埋め込まれてたのでビクビクしています。
リソースハッカーでみた限りはないようなのですが。

220:デフォルトの名無しさん
07/05/16 18:02:42
>>217
できるよ
例えば 新しいクラスで

implements idisposable○

ここでEnter押したらそのクラスの一番下に入ってないか?

221:デフォルトの名無しさん
07/05/16 18:03:35
>>218
新形式使えれ


222:217
07/05/16 18:52:59
>>220
ありがとうござます。
もう少しでスニペットで一個一個作るところでした。

223:デフォルトの名無しさん
07/05/16 20:14:55
ファイルを解凍するときに
既にUNLAH32.DLLは動作中ですってエラーがでるのだけど
UNLAH32.DLLを終了処理するには、どう記述したらいいですか?


224:デフォルトの名無しさん
07/05/16 20:32:39
うまく表現できないんだけど、必ず
  Public X as Single
  Public Y as Single

の二つのフィールドを持つ値型、みたいな型の指定ってできないかな?

もちろんインターフェイスを使えば近いことは可能なんだけど、
構造体の配列をストリーミング的に渡すような使い方をしたいので
パフォーマンス的な理由でなるべくならインターフェイスは使いたくない。

こういう場合、やっぱり特定の型の構造体の配列をベタに引数に取るようにするしかないのかな。

225:デフォルトの名無しさん
07/05/16 20:33:25
実行中のプロセスがあるからじゃないのか?
プロセスみてみてKillすれば?
つうか、動作中です って出てるのを終わらせるのは・・・あんまお勧めしないが?
まぁどういうソフト組んでるかにもよるし・・・

自分で1回UNLAH32.DLLをつかって解凍したあとの動作なのかな?

もしそうじゃないとすれば、UNLAH32.DLLを使うようなソフトは?
WindowをSafeモードで起動して 自分のソフトで解凍しようとしてもそうなるの?


226:デフォルトの名無しさん
07/05/16 20:36:26
>>224
構造体でいいと思うんだけど・・・
少なくとも俺はそうしてる
C++なら別のやり方もあるけど・・・

そこまでパフォーマンスを気にするなら何か他のところで余裕で稼げそうな気がする

227:デフォルトの名無しさん
07/05/16 20:40:40
>>225
自分で1回UNLAH32.DLLをつかって解凍したあとの動作です。

開放処理する必要があるのでしょうか?
その場合どう記述したらよいのか・・・

228:デフォルトの名無しさん
07/05/16 20:45:53
>>227
ということはアンマネージリソースが開放されてないんじゃないかと予想してみる

多分解凍が終わったら引数が帰ってくると思うんだけど・・・・
それがちゃんと出来てるなら

MarshalクラスつかってComObjectかどうか調べて
ReleaseComObject でキチンと開放してやってみてはどう?


229:228
07/05/16 20:48:06
ごめん、書き忘れ
そういえば
UnlhaGetrunning
みたいな現在実行中かどうか調べる関数なかったっけ?

実際にやってる処理差し支えなければ書いてみれば きっと皆こたえてくれるような気がするけどw

230:デフォルトの名無しさん
07/05/16 21:02:33
>>229
'LHA書庫操作を行う
Private Declare Function Unlha Lib "Unlha32" (ByVal hWnd As Integer, ByVal szCmdLine As String, ByVal szOutPut As String, ByVal dwsize As Integer) As Integer

'ファイルのダウンロード
Internet.DownloadFile(URL1, FileName1)
'書庫の解凍
Dim UnlhaLzhFile As String '書庫ファイル名
Dim UnlhaDir As String 'ファイルのパス
Dim UnlhaFiles As String'ファイル(ワイルドカード指定可)
Dim UnlhaSwitch As String '書庫操作命令
Dim UnlhaOptions As String '書庫操作スイッチ
Dim UnlhaCommandString As String'Unlhaのコマンド
Dim UnlhaRetunValue As Integer '書庫操作の結果戻り値
'各種パラメータの設定
UnlhaLzhFile = My.Settings.FilePath01 '"C:\お気に入り.lzh"
UnlhaDir = "C:\Documents and Settings\My Documents\My eBooks\My eBooks\"
UnlhaFiles = ""
UnlhaSwitch = "x"
UnlhaOptions = ""
'ファイル名の前後にダブルコーテーションを付加
UnlhaLzhFile = """" & UnlhaLzhFile & """"
UnlhaFiles = """" & UnlhaFiles & """"
UnlhaDir = """" & UnlhaDir & """"
'各種パラメータの値を元にコマンドを作成
UnlhaCommandString = UnlhaSwitch & " " & UnlhaOptions & " " & UnlhaLzhFile & " " & UnlhaDir & " " & UnlhaFiles & " "
UnlhaRetunValue = Unlha(0, UnlhaCommandString, Nothing, 0) '書庫操作を行う 解凍

231:デフォルトの名無しさん
07/05/16 21:27:21
>>226
やっぱりそれしかないのかな。。

値型用の(ボックス化されない)インターフェイスみたいなものがあっても
いいように思うんだけど。


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

5091日前に更新/282 KB
担当:undef